/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES proof of /export/starexec/sandbox/benchmark/theBenchmark.xml # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Termination w.r.t. Q of the given QTRS could be proven: (0) QTRS (1) DependencyPairsProof [EQUIVALENT, 944 ms] (2) QDP (3) DependencyGraphProof [EQUIVALENT, 0 ms] (4) AND (5) QDP (6) UsableRulesProof [EQUIVALENT, 0 ms] (7) QDP (8) QReductionProof [EQUIVALENT, 25 ms] (9) QDP (10) QDPSizeChangeProof [EQUIVALENT, 0 ms] (11) YES (12) QDP (13) UsableRulesProof [EQUIVALENT, 0 ms] (14) QDP (15) QReductionProof [EQUIVALENT, 24 ms] (16) QDP (17) QDPSizeChangeProof [EQUIVALENT, 0 ms] (18) YES (19) QDP (20) UsableRulesProof [EQUIVALENT, 0 ms] (21) QDP (22) QReductionProof [EQUIVALENT, 29 ms] (23) QDP (24) QDPSizeChangeProof [EQUIVALENT, 0 ms] (25) YES (26) QDP (27) UsableRulesProof [EQUIVALENT, 0 ms] (28) QDP (29) QReductionProof [EQUIVALENT, 26 ms] (30) QDP (31) QDPSizeChangeProof [EQUIVALENT, 0 ms] (32) YES (33) QDP (34) UsableRulesProof [EQUIVALENT, 0 ms] (35) QDP (36) QReductionProof [EQUIVALENT, 31 ms] (37) QDP (38) QDPSizeChangeProof [EQUIVALENT, 0 ms] (39) YES (40) QDP (41) UsableRulesProof [EQUIVALENT, 0 ms] (42) QDP (43) QReductionProof [EQUIVALENT, 28 ms] (44) QDP (45) QDPSizeChangeProof [EQUIVALENT, 0 ms] (46) YES (47) QDP (48) UsableRulesProof [EQUIVALENT, 0 ms] (49) QDP (50) QReductionProof [EQUIVALENT, 15 ms] (51) QDP (52) QDPSizeChangeProof [EQUIVALENT, 0 ms] (53) YES (54) QDP (55) UsableRulesProof [EQUIVALENT, 0 ms] (56) QDP (57) QReductionProof [EQUIVALENT, 6 ms] (58) QDP (59) QDPSizeChangeProof [EQUIVALENT, 0 ms] (60) YES (61) QDP (62) UsableRulesProof [EQUIVALENT, 0 ms] (63) QDP (64) QReductionProof [EQUIVALENT, 8 ms] (65) QDP (66) QDPSizeChangeProof [EQUIVALENT, 0 ms] (67) YES (68) QDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) QDP (71) QReductionProof [EQUIVALENT, 10 ms] (72) QDP (73) QDPSizeChangeProof [EQUIVALENT, 0 ms] (74) YES (75) QDP (76) UsableRulesProof [EQUIVALENT, 0 ms] (77) QDP (78) QReductionProof [EQUIVALENT, 11 ms] (79) QDP (80) QDPSizeChangeProof [EQUIVALENT, 0 ms] (81) YES (82) QDP (83) UsableRulesProof [EQUIVALENT, 0 ms] (84) QDP (85) QReductionProof [EQUIVALENT, 6 ms] (86) QDP (87) QDPSizeChangeProof [EQUIVALENT, 0 ms] (88) YES (89) QDP (90) UsableRulesProof [EQUIVALENT, 0 ms] (91) QDP (92) QReductionProof [EQUIVALENT, 6 ms] (93) QDP (94) QDPSizeChangeProof [EQUIVALENT, 0 ms] (95) YES (96) QDP (97) UsableRulesProof [EQUIVALENT, 0 ms] (98) QDP (99) QReductionProof [EQUIVALENT, 7 ms] (100) QDP (101) QDPSizeChangeProof [EQUIVALENT, 0 ms] (102) YES (103) QDP (104) UsableRulesProof [EQUIVALENT, 0 ms] (105) QDP (106) QReductionProof [EQUIVALENT, 0 ms] (107) QDP (108) QDPSizeChangeProof [EQUIVALENT, 0 ms] (109) YES (110) QDP (111) UsableRulesProof [EQUIVALENT, 0 ms] (112) QDP (113) QReductionProof [EQUIVALENT, 0 ms] (114) QDP (115) QDPSizeChangeProof [EQUIVALENT, 0 ms] (116) YES (117) QDP (118) UsableRulesProof [EQUIVALENT, 0 ms] (119) QDP (120) QReductionProof [EQUIVALENT, 0 ms] (121) QDP (122) QDPSizeChangeProof [EQUIVALENT, 0 ms] (123) YES (124) QDP (125) UsableRulesProof [EQUIVALENT, 0 ms] (126) QDP (127) QReductionProof [EQUIVALENT, 0 ms] (128) QDP (129) QDPSizeChangeProof [EQUIVALENT, 0 ms] (130) YES (131) QDP (132) UsableRulesProof [EQUIVALENT, 0 ms] (133) QDP (134) QReductionProof [EQUIVALENT, 0 ms] (135) QDP (136) QDPSizeChangeProof [EQUIVALENT, 0 ms] (137) YES (138) QDP (139) UsableRulesProof [EQUIVALENT, 0 ms] (140) QDP (141) QReductionProof [EQUIVALENT, 0 ms] (142) QDP (143) QDPSizeChangeProof [EQUIVALENT, 0 ms] (144) YES (145) QDP (146) UsableRulesProof [EQUIVALENT, 0 ms] (147) QDP (148) QReductionProof [EQUIVALENT, 0 ms] (149) QDP (150) QDPSizeChangeProof [EQUIVALENT, 0 ms] (151) YES (152) QDP (153) UsableRulesProof [EQUIVALENT, 0 ms] (154) QDP (155) QReductionProof [EQUIVALENT, 0 ms] (156) QDP (157) QDPSizeChangeProof [EQUIVALENT, 0 ms] (158) YES (159) QDP (160) UsableRulesProof [EQUIVALENT, 0 ms] (161) QDP (162) QReductionProof [EQUIVALENT, 0 ms] (163) QDP (164) QDPSizeChangeProof [EQUIVALENT, 0 ms] (165) YES (166) QDP (167) UsableRulesProof [EQUIVALENT, 0 ms] (168) QDP (169) QReductionProof [EQUIVALENT, 0 ms] (170) QDP (171) QDPSizeChangeProof [EQUIVALENT, 0 ms] (172) YES (173) QDP (174) UsableRulesProof [EQUIVALENT, 0 ms] (175) QDP (176) QReductionProof [EQUIVALENT, 0 ms] (177) QDP (178) QDPSizeChangeProof [EQUIVALENT, 0 ms] (179) YES (180) QDP (181) UsableRulesProof [EQUIVALENT, 0 ms] (182) QDP (183) QReductionProof [EQUIVALENT, 11 ms] (184) QDP (185) QDPSizeChangeProof [EQUIVALENT, 0 ms] (186) YES (187) QDP (188) UsableRulesProof [EQUIVALENT, 0 ms] (189) QDP (190) QReductionProof [EQUIVALENT, 0 ms] (191) QDP (192) QDPSizeChangeProof [EQUIVALENT, 0 ms] (193) YES (194) QDP (195) UsableRulesProof [EQUIVALENT, 0 ms] (196) QDP (197) QReductionProof [EQUIVALENT, 0 ms] (198) QDP (199) QDPSizeChangeProof [EQUIVALENT, 0 ms] (200) YES (201) QDP (202) UsableRulesProof [EQUIVALENT, 0 ms] (203) QDP (204) QReductionProof [EQUIVALENT, 10 ms] (205) QDP (206) QDPSizeChangeProof [EQUIVALENT, 0 ms] (207) YES (208) QDP (209) UsableRulesProof [EQUIVALENT, 0 ms] (210) QDP (211) QReductionProof [EQUIVALENT, 0 ms] (212) QDP (213) QDPSizeChangeProof [EQUIVALENT, 0 ms] (214) YES (215) QDP (216) UsableRulesProof [EQUIVALENT, 0 ms] (217) QDP (218) QReductionProof [EQUIVALENT, 0 ms] (219) QDP (220) QDPSizeChangeProof [EQUIVALENT, 0 ms] (221) YES (222) QDP (223) UsableRulesProof [EQUIVALENT, 0 ms] (224) QDP (225) QReductionProof [EQUIVALENT, 0 ms] (226) QDP (227) QDPSizeChangeProof [EQUIVALENT, 0 ms] (228) YES (229) QDP (230) UsableRulesProof [EQUIVALENT, 0 ms] (231) QDP (232) QReductionProof [EQUIVALENT, 0 ms] (233) QDP (234) QDPSizeChangeProof [EQUIVALENT, 0 ms] (235) YES (236) QDP (237) UsableRulesProof [EQUIVALENT, 0 ms] (238) QDP (239) QReductionProof [EQUIVALENT, 0 ms] (240) QDP (241) QDPSizeChangeProof [EQUIVALENT, 0 ms] (242) YES (243) QDP (244) UsableRulesProof [EQUIVALENT, 0 ms] (245) QDP (246) QReductionProof [EQUIVALENT, 0 ms] (247) QDP (248) QDPSizeChangeProof [EQUIVALENT, 0 ms] (249) YES (250) QDP (251) UsableRulesProof [EQUIVALENT, 0 ms] (252) QDP (253) QReductionProof [EQUIVALENT, 0 ms] (254) QDP (255) QDPSizeChangeProof [EQUIVALENT, 0 ms] (256) YES (257) QDP (258) UsableRulesProof [EQUIVALENT, 0 ms] (259) QDP (260) QReductionProof [EQUIVALENT, 0 ms] (261) QDP (262) QDPSizeChangeProof [EQUIVALENT, 0 ms] (263) YES (264) QDP (265) UsableRulesProof [EQUIVALENT, 0 ms] (266) QDP (267) QReductionProof [EQUIVALENT, 0 ms] (268) QDP (269) QDPSizeChangeProof [EQUIVALENT, 0 ms] (270) YES (271) QDP (272) UsableRulesProof [EQUIVALENT, 0 ms] (273) QDP (274) QReductionProof [EQUIVALENT, 0 ms] (275) QDP (276) QDPSizeChangeProof [EQUIVALENT, 0 ms] (277) YES (278) QDP (279) UsableRulesProof [EQUIVALENT, 0 ms] (280) QDP (281) QReductionProof [EQUIVALENT, 0 ms] (282) QDP (283) QDPSizeChangeProof [EQUIVALENT, 0 ms] (284) YES (285) QDP (286) UsableRulesProof [EQUIVALENT, 0 ms] (287) QDP (288) QReductionProof [EQUIVALENT, 0 ms] (289) QDP (290) QDPSizeChangeProof [EQUIVALENT, 0 ms] (291) YES (292) QDP (293) UsableRulesProof [EQUIVALENT, 0 ms] (294) QDP (295) QReductionProof [EQUIVALENT, 0 ms] (296) QDP (297) QDPSizeChangeProof [EQUIVALENT, 0 ms] (298) YES (299) QDP (300) UsableRulesProof [EQUIVALENT, 0 ms] (301) QDP (302) QReductionProof [EQUIVALENT, 0 ms] (303) QDP (304) QDPSizeChangeProof [EQUIVALENT, 0 ms] (305) YES (306) QDP (307) UsableRulesProof [EQUIVALENT, 0 ms] (308) QDP (309) QReductionProof [EQUIVALENT, 0 ms] (310) QDP (311) QDPSizeChangeProof [EQUIVALENT, 0 ms] (312) YES (313) QDP (314) UsableRulesProof [EQUIVALENT, 0 ms] (315) QDP (316) QReductionProof [EQUIVALENT, 0 ms] (317) QDP (318) QDPSizeChangeProof [EQUIVALENT, 0 ms] (319) YES (320) QDP (321) UsableRulesProof [EQUIVALENT, 0 ms] (322) QDP (323) QReductionProof [EQUIVALENT, 0 ms] (324) QDP (325) QDPSizeChangeProof [EQUIVALENT, 0 ms] (326) YES (327) QDP (328) UsableRulesProof [EQUIVALENT, 0 ms] (329) QDP (330) QReductionProof [EQUIVALENT, 0 ms] (331) QDP (332) QDPSizeChangeProof [EQUIVALENT, 0 ms] (333) YES (334) QDP (335) UsableRulesProof [EQUIVALENT, 0 ms] (336) QDP (337) QReductionProof [EQUIVALENT, 0 ms] (338) QDP (339) QDPSizeChangeProof [EQUIVALENT, 0 ms] (340) YES (341) QDP (342) UsableRulesProof [EQUIVALENT, 0 ms] (343) QDP (344) QReductionProof [EQUIVALENT, 0 ms] (345) QDP (346) QDPSizeChangeProof [EQUIVALENT, 0 ms] (347) YES (348) QDP (349) UsableRulesProof [EQUIVALENT, 0 ms] (350) QDP (351) QReductionProof [EQUIVALENT, 0 ms] (352) QDP (353) QDPSizeChangeProof [EQUIVALENT, 0 ms] (354) YES (355) QDP (356) UsableRulesProof [EQUIVALENT, 0 ms] (357) QDP (358) QReductionProof [EQUIVALENT, 0 ms] (359) QDP (360) QDPSizeChangeProof [EQUIVALENT, 0 ms] (361) YES (362) QDP (363) UsableRulesProof [EQUIVALENT, 0 ms] (364) QDP (365) QReductionProof [EQUIVALENT, 0 ms] (366) QDP (367) QDPSizeChangeProof [EQUIVALENT, 0 ms] (368) YES (369) QDP (370) UsableRulesProof [EQUIVALENT, 0 ms] (371) QDP (372) QReductionProof [EQUIVALENT, 0 ms] (373) QDP (374) QDPSizeChangeProof [EQUIVALENT, 0 ms] (375) YES (376) QDP (377) UsableRulesProof [EQUIVALENT, 0 ms] (378) QDP (379) QReductionProof [EQUIVALENT, 0 ms] (380) QDP (381) QDPSizeChangeProof [EQUIVALENT, 0 ms] (382) YES (383) QDP (384) UsableRulesProof [EQUIVALENT, 0 ms] (385) QDP (386) QDPOrderProof [EQUIVALENT, 2510 ms] (387) QDP (388) QDPOrderProof [EQUIVALENT, 2695 ms] (389) QDP (390) QDPOrderProof [EQUIVALENT, 2432 ms] (391) QDP (392) QDPOrderProof [EQUIVALENT, 338 ms] (393) QDP (394) QDPOrderProof [EQUIVALENT, 359 ms] (395) QDP (396) QDPOrderProof [EQUIVALENT, 2283 ms] (397) QDP (398) QDPOrderProof [EQUIVALENT, 311 ms] (399) QDP (400) QDPOrderProof [EQUIVALENT, 295 ms] (401) QDP (402) QDPOrderProof [EQUIVALENT, 2738 ms] (403) QDP (404) DependencyGraphProof [EQUIVALENT, 0 ms] (405) QDP (406) QDPOrderProof [EQUIVALENT, 2336 ms] (407) QDP (408) DependencyGraphProof [EQUIVALENT, 0 ms] (409) QDP (410) QDPOrderProof [EQUIVALENT, 277 ms] (411) QDP (412) QDPOrderProof [EQUIVALENT, 2294 ms] (413) QDP (414) QDPOrderProof [EQUIVALENT, 301 ms] (415) QDP (416) QDPOrderProof [EQUIVALENT, 2192 ms] (417) QDP (418) QDPOrderProof [EQUIVALENT, 217 ms] (419) QDP (420) QDPOrderProof [EQUIVALENT, 246 ms] (421) QDP (422) QDPOrderProof [EQUIVALENT, 2327 ms] (423) QDP (424) DependencyGraphProof [EQUIVALENT, 0 ms] (425) QDP (426) QDPOrderProof [EQUIVALENT, 2419 ms] (427) QDP (428) DependencyGraphProof [EQUIVALENT, 0 ms] (429) QDP (430) QDPOrderProof [EQUIVALENT, 2289 ms] (431) QDP (432) QDPOrderProof [EQUIVALENT, 1906 ms] (433) QDP (434) QDPOrderProof [EQUIVALENT, 2337 ms] (435) QDP (436) DependencyGraphProof [EQUIVALENT, 0 ms] (437) QDP (438) QDPOrderProof [EQUIVALENT, 1896 ms] (439) QDP (440) QDPOrderProof [EQUIVALENT, 2230 ms] (441) QDP (442) QDPOrderProof [EQUIVALENT, 1810 ms] (443) QDP (444) QDPOrderProof [EQUIVALENT, 2109 ms] (445) QDP (446) QDPOrderProof [EQUIVALENT, 2002 ms] (447) QDP (448) QDPOrderProof [EQUIVALENT, 184 ms] (449) QDP (450) QDPOrderProof [EQUIVALENT, 2101 ms] (451) QDP (452) QDPOrderProof [EQUIVALENT, 2144 ms] (453) QDP (454) DependencyGraphProof [EQUIVALENT, 0 ms] (455) QDP (456) QDPOrderProof [EQUIVALENT, 2104 ms] (457) QDP (458) DependencyGraphProof [EQUIVALENT, 0 ms] (459) QDP (460) QDPOrderProof [EQUIVALENT, 194 ms] (461) QDP (462) QDPOrderProof [EQUIVALENT, 2024 ms] (463) QDP (464) QDPOrderProof [EQUIVALENT, 2156 ms] (465) QDP (466) DependencyGraphProof [EQUIVALENT, 0 ms] (467) QDP (468) QDPOrderProof [EQUIVALENT, 2054 ms] (469) QDP (470) DependencyGraphProof [EQUIVALENT, 0 ms] (471) QDP (472) QDPOrderProof [EQUIVALENT, 176 ms] (473) QDP (474) QDPOrderProof [EQUIVALENT, 3358 ms] (475) QDP (476) QDPOrderProof [EQUIVALENT, 185 ms] (477) QDP (478) QDPOrderProof [EQUIVALENT, 2754 ms] (479) QDP (480) QDPOrderProof [EQUIVALENT, 1758 ms] (481) QDP (482) QDPOrderProof [EQUIVALENT, 1923 ms] (483) QDP (484) QDPOrderProof [EQUIVALENT, 195 ms] (485) QDP (486) QDPOrderProof [EQUIVALENT, 2239 ms] (487) QDP (488) QDPOrderProof [EQUIVALENT, 188 ms] (489) QDP (490) QDPOrderProof [EQUIVALENT, 188 ms] (491) QDP (492) DependencyGraphProof [EQUIVALENT, 0 ms] (493) QDP (494) QDPOrderProof [EQUIVALENT, 2170 ms] (495) QDP (496) QDPOrderProof [EQUIVALENT, 1896 ms] (497) QDP (498) QDPOrderProof [EQUIVALENT, 2440 ms] (499) QDP (500) QDPOrderProof [EQUIVALENT, 1523 ms] (501) QDP (502) QDPOrderProof [EQUIVALENT, 1694 ms] (503) QDP (504) QDPOrderProof [EQUIVALENT, 1491 ms] (505) QDP (506) QDPOrderProof [EQUIVALENT, 1436 ms] (507) QDP (508) QDPOrderProof [EQUIVALENT, 1455 ms] (509) QDP (510) QDPOrderProof [EQUIVALENT, 1694 ms] (511) QDP (512) QDPOrderProof [EQUIVALENT, 1563 ms] (513) QDP (514) QDPOrderProof [EQUIVALENT, 1643 ms] (515) QDP (516) QDPOrderProof [EQUIVALENT, 1525 ms] (517) QDP (518) QDPOrderProof [EQUIVALENT, 1712 ms] (519) QDP (520) QDPOrderProof [EQUIVALENT, 1286 ms] (521) QDP (522) QDPOrderProof [EQUIVALENT, 1416 ms] (523) QDP (524) QDPOrderProof [EQUIVALENT, 1306 ms] (525) QDP (526) QDPOrderProof [EQUIVALENT, 1310 ms] (527) QDP (528) QDPOrderProof [EQUIVALENT, 1445 ms] (529) QDP (530) DependencyGraphProof [EQUIVALENT, 0 ms] (531) QDP (532) QDPOrderProof [EQUIVALENT, 1366 ms] (533) QDP (534) QDPOrderProof [EQUIVALENT, 2559 ms] (535) QDP (536) QDPOrderProof [EQUIVALENT, 1471 ms] (537) QDP (538) DependencyGraphProof [EQUIVALENT, 0 ms] (539) QDP (540) QDPOrderProof [EQUIVALENT, 1396 ms] (541) QDP (542) QDPOrderProof [EQUIVALENT, 1222 ms] (543) QDP (544) QDPOrderProof [EQUIVALENT, 1231 ms] (545) QDP (546) QDPOrderProof [EQUIVALENT, 1295 ms] (547) QDP (548) QDPOrderProof [EQUIVALENT, 1260 ms] (549) QDP (550) QDPOrderProof [EQUIVALENT, 104 ms] (551) QDP (552) DependencyGraphProof [EQUIVALENT, 0 ms] (553) AND (554) QDP (555) TransformationProof [EQUIVALENT, 0 ms] (556) QDP (557) QDPOrderProof [EQUIVALENT, 553 ms] (558) QDP (559) PisEmptyProof [EQUIVALENT, 0 ms] (560) YES (561) QDP (562) UsableRulesProof [EQUIVALENT, 0 ms] (563) QDP (564) QReductionProof [EQUIVALENT, 0 ms] (565) QDP (566) QDPSizeChangeProof [EQUIVALENT, 0 ms] (567) YES ---------------------------------------- (0) Obligation: Q restricted rewrite system: The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (1) DependencyPairsProof (EQUIVALENT) Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem. ---------------------------------------- (2) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(zeros) -> MARK(cons(0, zeros)) ACTIVE(zeros) -> CONS(0, zeros) ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) ACTIVE(U101(tt, V1, V2)) -> U102^1(isNatKind(V1), V1, V2) ACTIVE(U101(tt, V1, V2)) -> ISNATKIND(V1) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) ACTIVE(U102(tt, V1, V2)) -> U103^1(isNatIListKind(V2), V1, V2) ACTIVE(U102(tt, V1, V2)) -> ISNATILISTKIND(V2) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) ACTIVE(U103(tt, V1, V2)) -> U104^1(isNatIListKind(V2), V1, V2) ACTIVE(U103(tt, V1, V2)) -> ISNATILISTKIND(V2) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) ACTIVE(U104(tt, V1, V2)) -> U105^1(isNat(V1), V2) ACTIVE(U104(tt, V1, V2)) -> ISNAT(V1) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U105(tt, V2)) -> U106^1(isNatIList(V2)) ACTIVE(U105(tt, V2)) -> ISNATILIST(V2) ACTIVE(U106(tt)) -> MARK(tt) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) ACTIVE(U11(tt, V1)) -> U12^1(isNatIListKind(V1), V1) ACTIVE(U11(tt, V1)) -> ISNATILISTKIND(V1) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) ACTIVE(U111(tt, L, N)) -> U112^1(isNatIListKind(L), L, N) ACTIVE(U111(tt, L, N)) -> ISNATILISTKIND(L) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) ACTIVE(U112(tt, L, N)) -> U113^1(isNat(N), L, N) ACTIVE(U112(tt, L, N)) -> ISNAT(N) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) ACTIVE(U113(tt, L, N)) -> U114^1(isNatKind(N), L) ACTIVE(U113(tt, L, N)) -> ISNATKIND(N) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U114(tt, L)) -> S(length(L)) ACTIVE(U114(tt, L)) -> LENGTH(L) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U12(tt, V1)) -> U13^1(isNatList(V1)) ACTIVE(U12(tt, V1)) -> ISNATLIST(V1) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) ACTIVE(U121(tt, IL)) -> U122^1(isNatIListKind(IL)) ACTIVE(U121(tt, IL)) -> ISNATILISTKIND(IL) ACTIVE(U122(tt)) -> MARK(nil) ACTIVE(U13(tt)) -> MARK(tt) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) ACTIVE(U131(tt, IL, M, N)) -> U132^1(isNatIListKind(IL), IL, M, N) ACTIVE(U131(tt, IL, M, N)) -> ISNATILISTKIND(IL) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) ACTIVE(U132(tt, IL, M, N)) -> U133^1(isNat(M), IL, M, N) ACTIVE(U132(tt, IL, M, N)) -> ISNAT(M) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) ACTIVE(U133(tt, IL, M, N)) -> U134^1(isNatKind(M), IL, M, N) ACTIVE(U133(tt, IL, M, N)) -> ISNATKIND(M) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) ACTIVE(U134(tt, IL, M, N)) -> U135^1(isNat(N), IL, M, N) ACTIVE(U134(tt, IL, M, N)) -> ISNAT(N) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) ACTIVE(U135(tt, IL, M, N)) -> U136^1(isNatKind(N), IL, M, N) ACTIVE(U135(tt, IL, M, N)) -> ISNATKIND(N) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U136(tt, IL, M, N)) -> CONS(N, take(M, IL)) ACTIVE(U136(tt, IL, M, N)) -> TAKE(M, IL) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) ACTIVE(U21(tt, V1)) -> U22^1(isNatKind(V1), V1) ACTIVE(U21(tt, V1)) -> ISNATKIND(V1) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U22(tt, V1)) -> U23^1(isNat(V1)) ACTIVE(U22(tt, V1)) -> ISNAT(V1) ACTIVE(U23(tt)) -> MARK(tt) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) ACTIVE(U31(tt, V)) -> U32^1(isNatIListKind(V), V) ACTIVE(U31(tt, V)) -> ISNATILISTKIND(V) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U32(tt, V)) -> U33^1(isNatList(V)) ACTIVE(U32(tt, V)) -> ISNATLIST(V) ACTIVE(U33(tt)) -> MARK(tt) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) ACTIVE(U41(tt, V1, V2)) -> U42^1(isNatKind(V1), V1, V2) ACTIVE(U41(tt, V1, V2)) -> ISNATKIND(V1) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) ACTIVE(U42(tt, V1, V2)) -> U43^1(isNatIListKind(V2), V1, V2) ACTIVE(U42(tt, V1, V2)) -> ISNATILISTKIND(V2) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) ACTIVE(U43(tt, V1, V2)) -> U44^1(isNatIListKind(V2), V1, V2) ACTIVE(U43(tt, V1, V2)) -> ISNATILISTKIND(V2) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) ACTIVE(U44(tt, V1, V2)) -> U45^1(isNat(V1), V2) ACTIVE(U44(tt, V1, V2)) -> ISNAT(V1) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U45(tt, V2)) -> U46^1(isNatIList(V2)) ACTIVE(U45(tt, V2)) -> ISNATILIST(V2) ACTIVE(U46(tt)) -> MARK(tt) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U51(tt, V2)) -> U52^1(isNatIListKind(V2)) ACTIVE(U51(tt, V2)) -> ISNATILISTKIND(V2) ACTIVE(U52(tt)) -> MARK(tt) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> U62^1(isNatIListKind(V2)) ACTIVE(U61(tt, V2)) -> ISNATILISTKIND(V2) ACTIVE(U62(tt)) -> MARK(tt) ACTIVE(U71(tt)) -> MARK(tt) ACTIVE(U81(tt)) -> MARK(tt) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) ACTIVE(U91(tt, V1, V2)) -> U92^1(isNatKind(V1), V1, V2) ACTIVE(U91(tt, V1, V2)) -> ISNATKIND(V1) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) ACTIVE(U92(tt, V1, V2)) -> U93^1(isNatIListKind(V2), V1, V2) ACTIVE(U92(tt, V1, V2)) -> ISNATILISTKIND(V2) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) ACTIVE(U93(tt, V1, V2)) -> U94^1(isNatIListKind(V2), V1, V2) ACTIVE(U93(tt, V1, V2)) -> ISNATILISTKIND(V2) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) ACTIVE(U94(tt, V1, V2)) -> U95^1(isNat(V1), V2) ACTIVE(U94(tt, V1, V2)) -> ISNAT(V1) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(U95(tt, V2)) -> U96^1(isNatList(V2)) ACTIVE(U95(tt, V2)) -> ISNATLIST(V2) ACTIVE(U96(tt)) -> MARK(tt) ACTIVE(isNat(0)) -> MARK(tt) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) ACTIVE(isNat(length(V1))) -> U11^1(isNatIListKind(V1), V1) ACTIVE(isNat(length(V1))) -> ISNATILISTKIND(V1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNat(s(V1))) -> U21^1(isNatKind(V1), V1) ACTIVE(isNat(s(V1))) -> ISNATKIND(V1) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) ACTIVE(isNatIList(V)) -> U31^1(isNatIListKind(V), V) ACTIVE(isNatIList(V)) -> ISNATILISTKIND(V) ACTIVE(isNatIList(zeros)) -> MARK(tt) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> U41^1(isNatKind(V1), V1, V2) ACTIVE(isNatIList(cons(V1, V2))) -> ISNATKIND(V1) ACTIVE(isNatIListKind(nil)) -> MARK(tt) ACTIVE(isNatIListKind(zeros)) -> MARK(tt) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) ACTIVE(isNatIListKind(cons(V1, V2))) -> U51^1(isNatKind(V1), V2) ACTIVE(isNatIListKind(cons(V1, V2))) -> ISNATKIND(V1) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatIListKind(take(V1, V2))) -> U61^1(isNatKind(V1), V2) ACTIVE(isNatIListKind(take(V1, V2))) -> ISNATKIND(V1) ACTIVE(isNatKind(0)) -> MARK(tt) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) ACTIVE(isNatKind(length(V1))) -> U71^1(isNatIListKind(V1)) ACTIVE(isNatKind(length(V1))) -> ISNATILISTKIND(V1) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) ACTIVE(isNatKind(s(V1))) -> U81^1(isNatKind(V1)) ACTIVE(isNatKind(s(V1))) -> ISNATKIND(V1) ACTIVE(isNatList(nil)) -> MARK(tt) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) ACTIVE(isNatList(cons(V1, V2))) -> U91^1(isNatKind(V1), V1, V2) ACTIVE(isNatList(cons(V1, V2))) -> ISNATKIND(V1) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatList(take(V1, V2))) -> U101^1(isNatKind(V1), V1, V2) ACTIVE(isNatList(take(V1, V2))) -> ISNATKIND(V1) ACTIVE(length(nil)) -> MARK(0) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(length(cons(N, L))) -> U111^1(isNatList(L), L, N) ACTIVE(length(cons(N, L))) -> ISNATLIST(L) ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) ACTIVE(take(0, IL)) -> U121^1(isNatIList(IL), IL) ACTIVE(take(0, IL)) -> ISNATILIST(IL) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) ACTIVE(take(s(M), cons(N, IL))) -> U131^1(isNatIList(IL), IL, M, N) ACTIVE(take(s(M), cons(N, IL))) -> ISNATILIST(IL) MARK(zeros) -> ACTIVE(zeros) MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(cons(X1, X2)) -> CONS(mark(X1), X2) MARK(cons(X1, X2)) -> MARK(X1) MARK(0) -> ACTIVE(0) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) MARK(U101(X1, X2, X3)) -> U101^1(mark(X1), X2, X3) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(tt) -> ACTIVE(tt) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) MARK(U102(X1, X2, X3)) -> U102^1(mark(X1), X2, X3) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) MARK(U103(X1, X2, X3)) -> U103^1(mark(X1), X2, X3) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) MARK(U104(X1, X2, X3)) -> U104^1(mark(X1), X2, X3) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) MARK(U105(X1, X2)) -> U105^1(mark(X1), X2) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) MARK(U106(X)) -> ACTIVE(U106(mark(X))) MARK(U106(X)) -> U106^1(mark(X)) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> U11^1(mark(X1), X2) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) MARK(U12(X1, X2)) -> U12^1(mark(X1), X2) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) MARK(U111(X1, X2, X3)) -> U111^1(mark(X1), X2, X3) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) MARK(U112(X1, X2, X3)) -> U112^1(mark(X1), X2, X3) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) MARK(U113(X1, X2, X3)) -> U113^1(mark(X1), X2, X3) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) MARK(U114(X1, X2)) -> U114^1(mark(X1), X2) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> ACTIVE(s(mark(X))) MARK(s(X)) -> S(mark(X)) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> LENGTH(mark(X)) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> ACTIVE(U13(mark(X))) MARK(U13(X)) -> U13^1(mark(X)) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) MARK(U121(X1, X2)) -> U121^1(mark(X1), X2) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> ACTIVE(U122(mark(X))) MARK(U122(X)) -> U122^1(mark(X)) MARK(U122(X)) -> MARK(X) MARK(nil) -> ACTIVE(nil) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U131(X1, X2, X3, X4)) -> U131^1(mark(X1), X2, X3, X4) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) MARK(U132(X1, X2, X3, X4)) -> U132^1(mark(X1), X2, X3, X4) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) MARK(U133(X1, X2, X3, X4)) -> U133^1(mark(X1), X2, X3, X4) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) MARK(U134(X1, X2, X3, X4)) -> U134^1(mark(X1), X2, X3, X4) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) MARK(U135(X1, X2, X3, X4)) -> U135^1(mark(X1), X2, X3, X4) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) MARK(U136(X1, X2, X3, X4)) -> U136^1(mark(X1), X2, X3, X4) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(take(X1, X2)) -> TAKE(mark(X1), mark(X2)) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> U21^1(mark(X1), X2) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) MARK(U22(X1, X2)) -> U22^1(mark(X1), X2) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> ACTIVE(U23(mark(X))) MARK(U23(X)) -> U23^1(mark(X)) MARK(U23(X)) -> MARK(X) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> U31^1(mark(X1), X2) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) MARK(U32(X1, X2)) -> U32^1(mark(X1), X2) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> ACTIVE(U33(mark(X))) MARK(U33(X)) -> U33^1(mark(X)) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> U41^1(mark(X1), X2, X3) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) MARK(U42(X1, X2, X3)) -> U42^1(mark(X1), X2, X3) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) MARK(U43(X1, X2, X3)) -> U43^1(mark(X1), X2, X3) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) MARK(U44(X1, X2, X3)) -> U44^1(mark(X1), X2, X3) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) MARK(U45(X1, X2)) -> U45^1(mark(X1), X2) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> ACTIVE(U46(mark(X))) MARK(U46(X)) -> U46^1(mark(X)) MARK(U46(X)) -> MARK(X) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> U51^1(mark(X1), X2) MARK(U51(X1, X2)) -> MARK(X1) MARK(U52(X)) -> ACTIVE(U52(mark(X))) MARK(U52(X)) -> U52^1(mark(X)) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> U61^1(mark(X1), X2) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> ACTIVE(U62(mark(X))) MARK(U62(X)) -> U62^1(mark(X)) MARK(U62(X)) -> MARK(X) MARK(U71(X)) -> ACTIVE(U71(mark(X))) MARK(U71(X)) -> U71^1(mark(X)) MARK(U71(X)) -> MARK(X) MARK(U81(X)) -> ACTIVE(U81(mark(X))) MARK(U81(X)) -> U81^1(mark(X)) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> U91^1(mark(X1), X2, X3) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) MARK(U92(X1, X2, X3)) -> U92^1(mark(X1), X2, X3) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) MARK(U93(X1, X2, X3)) -> U93^1(mark(X1), X2, X3) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) MARK(U94(X1, X2, X3)) -> U94^1(mark(X1), X2, X3) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) MARK(U95(X1, X2)) -> U95^1(mark(X1), X2) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> ACTIVE(U96(mark(X))) MARK(U96(X)) -> U96^1(mark(X)) MARK(U96(X)) -> MARK(X) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) U101^1(mark(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, mark(X2), X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, mark(X3)) -> U101^1(X1, X2, X3) U101^1(active(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, active(X2), X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, active(X3)) -> U101^1(X1, X2, X3) U102^1(mark(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, mark(X2), X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, mark(X3)) -> U102^1(X1, X2, X3) U102^1(active(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, active(X2), X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, active(X3)) -> U102^1(X1, X2, X3) ISNATKIND(mark(X)) -> ISNATKIND(X) ISNATKIND(active(X)) -> ISNATKIND(X) U103^1(mark(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, mark(X2), X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, mark(X3)) -> U103^1(X1, X2, X3) U103^1(active(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, active(X2), X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, active(X3)) -> U103^1(X1, X2, X3) ISNATILISTKIND(mark(X)) -> ISNATILISTKIND(X) ISNATILISTKIND(active(X)) -> ISNATILISTKIND(X) U104^1(mark(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, mark(X2), X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, mark(X3)) -> U104^1(X1, X2, X3) U104^1(active(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, active(X2), X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, active(X3)) -> U104^1(X1, X2, X3) U105^1(mark(X1), X2) -> U105^1(X1, X2) U105^1(X1, mark(X2)) -> U105^1(X1, X2) U105^1(active(X1), X2) -> U105^1(X1, X2) U105^1(X1, active(X2)) -> U105^1(X1, X2) ISNAT(mark(X)) -> ISNAT(X) ISNAT(active(X)) -> ISNAT(X) U106^1(mark(X)) -> U106^1(X) U106^1(active(X)) -> U106^1(X) ISNATILIST(mark(X)) -> ISNATILIST(X) ISNATILIST(active(X)) -> ISNATILIST(X) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) U12^1(mark(X1), X2) -> U12^1(X1, X2) U12^1(X1, mark(X2)) -> U12^1(X1, X2) U12^1(active(X1), X2) -> U12^1(X1, X2) U12^1(X1, active(X2)) -> U12^1(X1, X2) U111^1(mark(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, mark(X2), X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, mark(X3)) -> U111^1(X1, X2, X3) U111^1(active(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, active(X2), X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, active(X3)) -> U111^1(X1, X2, X3) U112^1(mark(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, mark(X2), X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, mark(X3)) -> U112^1(X1, X2, X3) U112^1(active(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, active(X2), X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, active(X3)) -> U112^1(X1, X2, X3) U113^1(mark(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, mark(X2), X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, mark(X3)) -> U113^1(X1, X2, X3) U113^1(active(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, active(X2), X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, active(X3)) -> U113^1(X1, X2, X3) U114^1(mark(X1), X2) -> U114^1(X1, X2) U114^1(X1, mark(X2)) -> U114^1(X1, X2) U114^1(active(X1), X2) -> U114^1(X1, X2) U114^1(X1, active(X2)) -> U114^1(X1, X2) S(mark(X)) -> S(X) S(active(X)) -> S(X) LENGTH(mark(X)) -> LENGTH(X) LENGTH(active(X)) -> LENGTH(X) U13^1(mark(X)) -> U13^1(X) U13^1(active(X)) -> U13^1(X) ISNATLIST(mark(X)) -> ISNATLIST(X) ISNATLIST(active(X)) -> ISNATLIST(X) U121^1(mark(X1), X2) -> U121^1(X1, X2) U121^1(X1, mark(X2)) -> U121^1(X1, X2) U121^1(active(X1), X2) -> U121^1(X1, X2) U121^1(X1, active(X2)) -> U121^1(X1, X2) U122^1(mark(X)) -> U122^1(X) U122^1(active(X)) -> U122^1(X) U131^1(mark(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, mark(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, mark(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, mark(X4)) -> U131^1(X1, X2, X3, X4) U131^1(active(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, active(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, active(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, active(X4)) -> U131^1(X1, X2, X3, X4) U132^1(mark(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, mark(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, mark(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, mark(X4)) -> U132^1(X1, X2, X3, X4) U132^1(active(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, active(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, active(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, active(X4)) -> U132^1(X1, X2, X3, X4) U133^1(mark(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, mark(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, mark(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, mark(X4)) -> U133^1(X1, X2, X3, X4) U133^1(active(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, active(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, active(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, active(X4)) -> U133^1(X1, X2, X3, X4) U134^1(mark(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, mark(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, mark(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, mark(X4)) -> U134^1(X1, X2, X3, X4) U134^1(active(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, active(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, active(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, active(X4)) -> U134^1(X1, X2, X3, X4) U135^1(mark(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, mark(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, mark(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, mark(X4)) -> U135^1(X1, X2, X3, X4) U135^1(active(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, active(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, active(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, active(X4)) -> U135^1(X1, X2, X3, X4) U136^1(mark(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, mark(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, mark(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, mark(X4)) -> U136^1(X1, X2, X3, X4) U136^1(active(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, active(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, active(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, active(X4)) -> U136^1(X1, X2, X3, X4) TAKE(mark(X1), X2) -> TAKE(X1, X2) TAKE(X1, mark(X2)) -> TAKE(X1, X2) TAKE(active(X1), X2) -> TAKE(X1, X2) TAKE(X1, active(X2)) -> TAKE(X1, X2) U21^1(mark(X1), X2) -> U21^1(X1, X2) U21^1(X1, mark(X2)) -> U21^1(X1, X2) U21^1(active(X1), X2) -> U21^1(X1, X2) U21^1(X1, active(X2)) -> U21^1(X1, X2) U22^1(mark(X1), X2) -> U22^1(X1, X2) U22^1(X1, mark(X2)) -> U22^1(X1, X2) U22^1(active(X1), X2) -> U22^1(X1, X2) U22^1(X1, active(X2)) -> U22^1(X1, X2) U23^1(mark(X)) -> U23^1(X) U23^1(active(X)) -> U23^1(X) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) U32^1(mark(X1), X2) -> U32^1(X1, X2) U32^1(X1, mark(X2)) -> U32^1(X1, X2) U32^1(active(X1), X2) -> U32^1(X1, X2) U32^1(X1, active(X2)) -> U32^1(X1, X2) U33^1(mark(X)) -> U33^1(X) U33^1(active(X)) -> U33^1(X) U41^1(mark(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, mark(X2), X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, mark(X3)) -> U41^1(X1, X2, X3) U41^1(active(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, active(X2), X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, active(X3)) -> U41^1(X1, X2, X3) U42^1(mark(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, mark(X2), X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, mark(X3)) -> U42^1(X1, X2, X3) U42^1(active(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, active(X2), X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, active(X3)) -> U42^1(X1, X2, X3) U43^1(mark(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, mark(X2), X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, mark(X3)) -> U43^1(X1, X2, X3) U43^1(active(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, active(X2), X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, active(X3)) -> U43^1(X1, X2, X3) U44^1(mark(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, mark(X2), X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, mark(X3)) -> U44^1(X1, X2, X3) U44^1(active(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, active(X2), X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, active(X3)) -> U44^1(X1, X2, X3) U45^1(mark(X1), X2) -> U45^1(X1, X2) U45^1(X1, mark(X2)) -> U45^1(X1, X2) U45^1(active(X1), X2) -> U45^1(X1, X2) U45^1(X1, active(X2)) -> U45^1(X1, X2) U46^1(mark(X)) -> U46^1(X) U46^1(active(X)) -> U46^1(X) U51^1(mark(X1), X2) -> U51^1(X1, X2) U51^1(X1, mark(X2)) -> U51^1(X1, X2) U51^1(active(X1), X2) -> U51^1(X1, X2) U51^1(X1, active(X2)) -> U51^1(X1, X2) U52^1(mark(X)) -> U52^1(X) U52^1(active(X)) -> U52^1(X) U61^1(mark(X1), X2) -> U61^1(X1, X2) U61^1(X1, mark(X2)) -> U61^1(X1, X2) U61^1(active(X1), X2) -> U61^1(X1, X2) U61^1(X1, active(X2)) -> U61^1(X1, X2) U62^1(mark(X)) -> U62^1(X) U62^1(active(X)) -> U62^1(X) U71^1(mark(X)) -> U71^1(X) U71^1(active(X)) -> U71^1(X) U81^1(mark(X)) -> U81^1(X) U81^1(active(X)) -> U81^1(X) U91^1(mark(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, mark(X2), X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, mark(X3)) -> U91^1(X1, X2, X3) U91^1(active(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, active(X2), X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, active(X3)) -> U91^1(X1, X2, X3) U92^1(mark(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, mark(X2), X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, mark(X3)) -> U92^1(X1, X2, X3) U92^1(active(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, active(X2), X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, active(X3)) -> U92^1(X1, X2, X3) U93^1(mark(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, mark(X2), X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, mark(X3)) -> U93^1(X1, X2, X3) U93^1(active(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, active(X2), X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, active(X3)) -> U93^1(X1, X2, X3) U94^1(mark(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, mark(X2), X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, mark(X3)) -> U94^1(X1, X2, X3) U94^1(active(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, active(X2), X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, active(X3)) -> U94^1(X1, X2, X3) U95^1(mark(X1), X2) -> U95^1(X1, X2) U95^1(X1, mark(X2)) -> U95^1(X1, X2) U95^1(active(X1), X2) -> U95^1(X1, X2) U95^1(X1, active(X2)) -> U95^1(X1, X2) U96^1(mark(X)) -> U96^1(X) U96^1(active(X)) -> U96^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (3) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 55 SCCs with 165 less nodes. ---------------------------------------- (4) Complex Obligation (AND) ---------------------------------------- (5) Obligation: Q DP problem: The TRS P consists of the following rules: U96^1(active(X)) -> U96^1(X) U96^1(mark(X)) -> U96^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (6) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (7) Obligation: Q DP problem: The TRS P consists of the following rules: U96^1(active(X)) -> U96^1(X) U96^1(mark(X)) -> U96^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (8) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (9) Obligation: Q DP problem: The TRS P consists of the following rules: U96^1(active(X)) -> U96^1(X) U96^1(mark(X)) -> U96^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (10) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U96^1(active(X)) -> U96^1(X) The graph contains the following edges 1 > 1 *U96^1(mark(X)) -> U96^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (11) YES ---------------------------------------- (12) Obligation: Q DP problem: The TRS P consists of the following rules: U95^1(X1, mark(X2)) -> U95^1(X1, X2) U95^1(mark(X1), X2) -> U95^1(X1, X2) U95^1(active(X1), X2) -> U95^1(X1, X2) U95^1(X1, active(X2)) -> U95^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (13) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (14) Obligation: Q DP problem: The TRS P consists of the following rules: U95^1(X1, mark(X2)) -> U95^1(X1, X2) U95^1(mark(X1), X2) -> U95^1(X1, X2) U95^1(active(X1), X2) -> U95^1(X1, X2) U95^1(X1, active(X2)) -> U95^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (15) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (16) Obligation: Q DP problem: The TRS P consists of the following rules: U95^1(X1, mark(X2)) -> U95^1(X1, X2) U95^1(mark(X1), X2) -> U95^1(X1, X2) U95^1(active(X1), X2) -> U95^1(X1, X2) U95^1(X1, active(X2)) -> U95^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (17) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U95^1(X1, mark(X2)) -> U95^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U95^1(mark(X1), X2) -> U95^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U95^1(active(X1), X2) -> U95^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U95^1(X1, active(X2)) -> U95^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (18) YES ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: U94^1(X1, mark(X2), X3) -> U94^1(X1, X2, X3) U94^1(mark(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, mark(X3)) -> U94^1(X1, X2, X3) U94^1(active(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, active(X2), X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, active(X3)) -> U94^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (20) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: U94^1(X1, mark(X2), X3) -> U94^1(X1, X2, X3) U94^1(mark(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, mark(X3)) -> U94^1(X1, X2, X3) U94^1(active(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, active(X2), X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, active(X3)) -> U94^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (22) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: U94^1(X1, mark(X2), X3) -> U94^1(X1, X2, X3) U94^1(mark(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, mark(X3)) -> U94^1(X1, X2, X3) U94^1(active(X1), X2, X3) -> U94^1(X1, X2, X3) U94^1(X1, active(X2), X3) -> U94^1(X1, X2, X3) U94^1(X1, X2, active(X3)) -> U94^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (24) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U94^1(X1, mark(X2), X3) -> U94^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U94^1(mark(X1), X2, X3) -> U94^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U94^1(X1, X2, mark(X3)) -> U94^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U94^1(active(X1), X2, X3) -> U94^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U94^1(X1, active(X2), X3) -> U94^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U94^1(X1, X2, active(X3)) -> U94^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (25) YES ---------------------------------------- (26) Obligation: Q DP problem: The TRS P consists of the following rules: U93^1(X1, mark(X2), X3) -> U93^1(X1, X2, X3) U93^1(mark(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, mark(X3)) -> U93^1(X1, X2, X3) U93^1(active(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, active(X2), X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, active(X3)) -> U93^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (27) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (28) Obligation: Q DP problem: The TRS P consists of the following rules: U93^1(X1, mark(X2), X3) -> U93^1(X1, X2, X3) U93^1(mark(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, mark(X3)) -> U93^1(X1, X2, X3) U93^1(active(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, active(X2), X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, active(X3)) -> U93^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (29) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (30) Obligation: Q DP problem: The TRS P consists of the following rules: U93^1(X1, mark(X2), X3) -> U93^1(X1, X2, X3) U93^1(mark(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, mark(X3)) -> U93^1(X1, X2, X3) U93^1(active(X1), X2, X3) -> U93^1(X1, X2, X3) U93^1(X1, active(X2), X3) -> U93^1(X1, X2, X3) U93^1(X1, X2, active(X3)) -> U93^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (31) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U93^1(X1, mark(X2), X3) -> U93^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U93^1(mark(X1), X2, X3) -> U93^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U93^1(X1, X2, mark(X3)) -> U93^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U93^1(active(X1), X2, X3) -> U93^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U93^1(X1, active(X2), X3) -> U93^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U93^1(X1, X2, active(X3)) -> U93^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (32) YES ---------------------------------------- (33) Obligation: Q DP problem: The TRS P consists of the following rules: U92^1(X1, mark(X2), X3) -> U92^1(X1, X2, X3) U92^1(mark(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, mark(X3)) -> U92^1(X1, X2, X3) U92^1(active(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, active(X2), X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, active(X3)) -> U92^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (34) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (35) Obligation: Q DP problem: The TRS P consists of the following rules: U92^1(X1, mark(X2), X3) -> U92^1(X1, X2, X3) U92^1(mark(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, mark(X3)) -> U92^1(X1, X2, X3) U92^1(active(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, active(X2), X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, active(X3)) -> U92^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (36) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: U92^1(X1, mark(X2), X3) -> U92^1(X1, X2, X3) U92^1(mark(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, mark(X3)) -> U92^1(X1, X2, X3) U92^1(active(X1), X2, X3) -> U92^1(X1, X2, X3) U92^1(X1, active(X2), X3) -> U92^1(X1, X2, X3) U92^1(X1, X2, active(X3)) -> U92^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (38) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U92^1(X1, mark(X2), X3) -> U92^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U92^1(mark(X1), X2, X3) -> U92^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U92^1(X1, X2, mark(X3)) -> U92^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U92^1(active(X1), X2, X3) -> U92^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U92^1(X1, active(X2), X3) -> U92^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U92^1(X1, X2, active(X3)) -> U92^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (39) YES ---------------------------------------- (40) Obligation: Q DP problem: The TRS P consists of the following rules: U91^1(X1, mark(X2), X3) -> U91^1(X1, X2, X3) U91^1(mark(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, mark(X3)) -> U91^1(X1, X2, X3) U91^1(active(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, active(X2), X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, active(X3)) -> U91^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (41) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (42) Obligation: Q DP problem: The TRS P consists of the following rules: U91^1(X1, mark(X2), X3) -> U91^1(X1, X2, X3) U91^1(mark(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, mark(X3)) -> U91^1(X1, X2, X3) U91^1(active(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, active(X2), X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, active(X3)) -> U91^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (43) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (44) Obligation: Q DP problem: The TRS P consists of the following rules: U91^1(X1, mark(X2), X3) -> U91^1(X1, X2, X3) U91^1(mark(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, mark(X3)) -> U91^1(X1, X2, X3) U91^1(active(X1), X2, X3) -> U91^1(X1, X2, X3) U91^1(X1, active(X2), X3) -> U91^1(X1, X2, X3) U91^1(X1, X2, active(X3)) -> U91^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (45) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U91^1(X1, mark(X2), X3) -> U91^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U91^1(mark(X1), X2, X3) -> U91^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U91^1(X1, X2, mark(X3)) -> U91^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U91^1(active(X1), X2, X3) -> U91^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U91^1(X1, active(X2), X3) -> U91^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U91^1(X1, X2, active(X3)) -> U91^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (46) YES ---------------------------------------- (47) Obligation: Q DP problem: The TRS P consists of the following rules: U81^1(active(X)) -> U81^1(X) U81^1(mark(X)) -> U81^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (48) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (49) Obligation: Q DP problem: The TRS P consists of the following rules: U81^1(active(X)) -> U81^1(X) U81^1(mark(X)) -> U81^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (50) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (51) Obligation: Q DP problem: The TRS P consists of the following rules: U81^1(active(X)) -> U81^1(X) U81^1(mark(X)) -> U81^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (52) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U81^1(active(X)) -> U81^1(X) The graph contains the following edges 1 > 1 *U81^1(mark(X)) -> U81^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (53) YES ---------------------------------------- (54) Obligation: Q DP problem: The TRS P consists of the following rules: U71^1(active(X)) -> U71^1(X) U71^1(mark(X)) -> U71^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (55) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (56) Obligation: Q DP problem: The TRS P consists of the following rules: U71^1(active(X)) -> U71^1(X) U71^1(mark(X)) -> U71^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (57) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (58) Obligation: Q DP problem: The TRS P consists of the following rules: U71^1(active(X)) -> U71^1(X) U71^1(mark(X)) -> U71^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (59) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U71^1(active(X)) -> U71^1(X) The graph contains the following edges 1 > 1 *U71^1(mark(X)) -> U71^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (60) YES ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: U62^1(active(X)) -> U62^1(X) U62^1(mark(X)) -> U62^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (62) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (63) Obligation: Q DP problem: The TRS P consists of the following rules: U62^1(active(X)) -> U62^1(X) U62^1(mark(X)) -> U62^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (64) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (65) Obligation: Q DP problem: The TRS P consists of the following rules: U62^1(active(X)) -> U62^1(X) U62^1(mark(X)) -> U62^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (66) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U62^1(active(X)) -> U62^1(X) The graph contains the following edges 1 > 1 *U62^1(mark(X)) -> U62^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (67) YES ---------------------------------------- (68) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(X1, mark(X2)) -> U61^1(X1, X2) U61^1(mark(X1), X2) -> U61^1(X1, X2) U61^1(active(X1), X2) -> U61^1(X1, X2) U61^1(X1, active(X2)) -> U61^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (69) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (70) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(X1, mark(X2)) -> U61^1(X1, X2) U61^1(mark(X1), X2) -> U61^1(X1, X2) U61^1(active(X1), X2) -> U61^1(X1, X2) U61^1(X1, active(X2)) -> U61^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (71) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: U61^1(X1, mark(X2)) -> U61^1(X1, X2) U61^1(mark(X1), X2) -> U61^1(X1, X2) U61^1(active(X1), X2) -> U61^1(X1, X2) U61^1(X1, active(X2)) -> U61^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (73) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U61^1(X1, mark(X2)) -> U61^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U61^1(mark(X1), X2) -> U61^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U61^1(active(X1), X2) -> U61^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U61^1(X1, active(X2)) -> U61^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (74) YES ---------------------------------------- (75) Obligation: Q DP problem: The TRS P consists of the following rules: U52^1(active(X)) -> U52^1(X) U52^1(mark(X)) -> U52^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (76) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (77) Obligation: Q DP problem: The TRS P consists of the following rules: U52^1(active(X)) -> U52^1(X) U52^1(mark(X)) -> U52^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (78) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: U52^1(active(X)) -> U52^1(X) U52^1(mark(X)) -> U52^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (80) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U52^1(active(X)) -> U52^1(X) The graph contains the following edges 1 > 1 *U52^1(mark(X)) -> U52^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (81) YES ---------------------------------------- (82) Obligation: Q DP problem: The TRS P consists of the following rules: U51^1(X1, mark(X2)) -> U51^1(X1, X2) U51^1(mark(X1), X2) -> U51^1(X1, X2) U51^1(active(X1), X2) -> U51^1(X1, X2) U51^1(X1, active(X2)) -> U51^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (83) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (84) Obligation: Q DP problem: The TRS P consists of the following rules: U51^1(X1, mark(X2)) -> U51^1(X1, X2) U51^1(mark(X1), X2) -> U51^1(X1, X2) U51^1(active(X1), X2) -> U51^1(X1, X2) U51^1(X1, active(X2)) -> U51^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (85) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (86) Obligation: Q DP problem: The TRS P consists of the following rules: U51^1(X1, mark(X2)) -> U51^1(X1, X2) U51^1(mark(X1), X2) -> U51^1(X1, X2) U51^1(active(X1), X2) -> U51^1(X1, X2) U51^1(X1, active(X2)) -> U51^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (87) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U51^1(X1, mark(X2)) -> U51^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U51^1(mark(X1), X2) -> U51^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U51^1(active(X1), X2) -> U51^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U51^1(X1, active(X2)) -> U51^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (88) YES ---------------------------------------- (89) Obligation: Q DP problem: The TRS P consists of the following rules: U46^1(active(X)) -> U46^1(X) U46^1(mark(X)) -> U46^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (90) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (91) Obligation: Q DP problem: The TRS P consists of the following rules: U46^1(active(X)) -> U46^1(X) U46^1(mark(X)) -> U46^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (92) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (93) Obligation: Q DP problem: The TRS P consists of the following rules: U46^1(active(X)) -> U46^1(X) U46^1(mark(X)) -> U46^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (94) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U46^1(active(X)) -> U46^1(X) The graph contains the following edges 1 > 1 *U46^1(mark(X)) -> U46^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (95) YES ---------------------------------------- (96) Obligation: Q DP problem: The TRS P consists of the following rules: U45^1(X1, mark(X2)) -> U45^1(X1, X2) U45^1(mark(X1), X2) -> U45^1(X1, X2) U45^1(active(X1), X2) -> U45^1(X1, X2) U45^1(X1, active(X2)) -> U45^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (97) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (98) Obligation: Q DP problem: The TRS P consists of the following rules: U45^1(X1, mark(X2)) -> U45^1(X1, X2) U45^1(mark(X1), X2) -> U45^1(X1, X2) U45^1(active(X1), X2) -> U45^1(X1, X2) U45^1(X1, active(X2)) -> U45^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (99) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (100) Obligation: Q DP problem: The TRS P consists of the following rules: U45^1(X1, mark(X2)) -> U45^1(X1, X2) U45^1(mark(X1), X2) -> U45^1(X1, X2) U45^1(active(X1), X2) -> U45^1(X1, X2) U45^1(X1, active(X2)) -> U45^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (101) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U45^1(X1, mark(X2)) -> U45^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U45^1(mark(X1), X2) -> U45^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U45^1(active(X1), X2) -> U45^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U45^1(X1, active(X2)) -> U45^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (102) YES ---------------------------------------- (103) Obligation: Q DP problem: The TRS P consists of the following rules: U44^1(X1, mark(X2), X3) -> U44^1(X1, X2, X3) U44^1(mark(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, mark(X3)) -> U44^1(X1, X2, X3) U44^1(active(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, active(X2), X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, active(X3)) -> U44^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (104) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (105) Obligation: Q DP problem: The TRS P consists of the following rules: U44^1(X1, mark(X2), X3) -> U44^1(X1, X2, X3) U44^1(mark(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, mark(X3)) -> U44^1(X1, X2, X3) U44^1(active(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, active(X2), X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, active(X3)) -> U44^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (106) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (107) Obligation: Q DP problem: The TRS P consists of the following rules: U44^1(X1, mark(X2), X3) -> U44^1(X1, X2, X3) U44^1(mark(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, mark(X3)) -> U44^1(X1, X2, X3) U44^1(active(X1), X2, X3) -> U44^1(X1, X2, X3) U44^1(X1, active(X2), X3) -> U44^1(X1, X2, X3) U44^1(X1, X2, active(X3)) -> U44^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (108) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U44^1(X1, mark(X2), X3) -> U44^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U44^1(mark(X1), X2, X3) -> U44^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U44^1(X1, X2, mark(X3)) -> U44^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U44^1(active(X1), X2, X3) -> U44^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U44^1(X1, active(X2), X3) -> U44^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U44^1(X1, X2, active(X3)) -> U44^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (109) YES ---------------------------------------- (110) Obligation: Q DP problem: The TRS P consists of the following rules: U43^1(X1, mark(X2), X3) -> U43^1(X1, X2, X3) U43^1(mark(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, mark(X3)) -> U43^1(X1, X2, X3) U43^1(active(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, active(X2), X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, active(X3)) -> U43^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (111) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (112) Obligation: Q DP problem: The TRS P consists of the following rules: U43^1(X1, mark(X2), X3) -> U43^1(X1, X2, X3) U43^1(mark(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, mark(X3)) -> U43^1(X1, X2, X3) U43^1(active(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, active(X2), X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, active(X3)) -> U43^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (113) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (114) Obligation: Q DP problem: The TRS P consists of the following rules: U43^1(X1, mark(X2), X3) -> U43^1(X1, X2, X3) U43^1(mark(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, mark(X3)) -> U43^1(X1, X2, X3) U43^1(active(X1), X2, X3) -> U43^1(X1, X2, X3) U43^1(X1, active(X2), X3) -> U43^1(X1, X2, X3) U43^1(X1, X2, active(X3)) -> U43^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (115) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U43^1(X1, mark(X2), X3) -> U43^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U43^1(mark(X1), X2, X3) -> U43^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U43^1(X1, X2, mark(X3)) -> U43^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U43^1(active(X1), X2, X3) -> U43^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U43^1(X1, active(X2), X3) -> U43^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U43^1(X1, X2, active(X3)) -> U43^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (116) YES ---------------------------------------- (117) Obligation: Q DP problem: The TRS P consists of the following rules: U42^1(X1, mark(X2), X3) -> U42^1(X1, X2, X3) U42^1(mark(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, mark(X3)) -> U42^1(X1, X2, X3) U42^1(active(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, active(X2), X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, active(X3)) -> U42^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (118) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (119) Obligation: Q DP problem: The TRS P consists of the following rules: U42^1(X1, mark(X2), X3) -> U42^1(X1, X2, X3) U42^1(mark(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, mark(X3)) -> U42^1(X1, X2, X3) U42^1(active(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, active(X2), X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, active(X3)) -> U42^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (120) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (121) Obligation: Q DP problem: The TRS P consists of the following rules: U42^1(X1, mark(X2), X3) -> U42^1(X1, X2, X3) U42^1(mark(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, mark(X3)) -> U42^1(X1, X2, X3) U42^1(active(X1), X2, X3) -> U42^1(X1, X2, X3) U42^1(X1, active(X2), X3) -> U42^1(X1, X2, X3) U42^1(X1, X2, active(X3)) -> U42^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (122) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U42^1(X1, mark(X2), X3) -> U42^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U42^1(mark(X1), X2, X3) -> U42^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U42^1(X1, X2, mark(X3)) -> U42^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U42^1(active(X1), X2, X3) -> U42^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U42^1(X1, active(X2), X3) -> U42^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U42^1(X1, X2, active(X3)) -> U42^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (123) YES ---------------------------------------- (124) Obligation: Q DP problem: The TRS P consists of the following rules: U41^1(X1, mark(X2), X3) -> U41^1(X1, X2, X3) U41^1(mark(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, mark(X3)) -> U41^1(X1, X2, X3) U41^1(active(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, active(X2), X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, active(X3)) -> U41^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (125) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (126) Obligation: Q DP problem: The TRS P consists of the following rules: U41^1(X1, mark(X2), X3) -> U41^1(X1, X2, X3) U41^1(mark(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, mark(X3)) -> U41^1(X1, X2, X3) U41^1(active(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, active(X2), X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, active(X3)) -> U41^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (127) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (128) Obligation: Q DP problem: The TRS P consists of the following rules: U41^1(X1, mark(X2), X3) -> U41^1(X1, X2, X3) U41^1(mark(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, mark(X3)) -> U41^1(X1, X2, X3) U41^1(active(X1), X2, X3) -> U41^1(X1, X2, X3) U41^1(X1, active(X2), X3) -> U41^1(X1, X2, X3) U41^1(X1, X2, active(X3)) -> U41^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (129) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U41^1(X1, mark(X2), X3) -> U41^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U41^1(mark(X1), X2, X3) -> U41^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U41^1(X1, X2, mark(X3)) -> U41^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U41^1(active(X1), X2, X3) -> U41^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U41^1(X1, active(X2), X3) -> U41^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U41^1(X1, X2, active(X3)) -> U41^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (130) YES ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: U33^1(active(X)) -> U33^1(X) U33^1(mark(X)) -> U33^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (132) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: U33^1(active(X)) -> U33^1(X) U33^1(mark(X)) -> U33^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (134) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (135) Obligation: Q DP problem: The TRS P consists of the following rules: U33^1(active(X)) -> U33^1(X) U33^1(mark(X)) -> U33^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (136) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U33^1(active(X)) -> U33^1(X) The graph contains the following edges 1 > 1 *U33^1(mark(X)) -> U33^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (137) YES ---------------------------------------- (138) Obligation: Q DP problem: The TRS P consists of the following rules: U32^1(X1, mark(X2)) -> U32^1(X1, X2) U32^1(mark(X1), X2) -> U32^1(X1, X2) U32^1(active(X1), X2) -> U32^1(X1, X2) U32^1(X1, active(X2)) -> U32^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (139) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (140) Obligation: Q DP problem: The TRS P consists of the following rules: U32^1(X1, mark(X2)) -> U32^1(X1, X2) U32^1(mark(X1), X2) -> U32^1(X1, X2) U32^1(active(X1), X2) -> U32^1(X1, X2) U32^1(X1, active(X2)) -> U32^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (141) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (142) Obligation: Q DP problem: The TRS P consists of the following rules: U32^1(X1, mark(X2)) -> U32^1(X1, X2) U32^1(mark(X1), X2) -> U32^1(X1, X2) U32^1(active(X1), X2) -> U32^1(X1, X2) U32^1(X1, active(X2)) -> U32^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (143) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U32^1(X1, mark(X2)) -> U32^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U32^1(mark(X1), X2) -> U32^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U32^1(active(X1), X2) -> U32^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U32^1(X1, active(X2)) -> U32^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (144) YES ---------------------------------------- (145) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (146) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (147) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (148) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (149) Obligation: Q DP problem: The TRS P consists of the following rules: U31^1(X1, mark(X2)) -> U31^1(X1, X2) U31^1(mark(X1), X2) -> U31^1(X1, X2) U31^1(active(X1), X2) -> U31^1(X1, X2) U31^1(X1, active(X2)) -> U31^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (150) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U31^1(X1, mark(X2)) -> U31^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U31^1(mark(X1), X2) -> U31^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U31^1(active(X1), X2) -> U31^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U31^1(X1, active(X2)) -> U31^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (151) YES ---------------------------------------- (152) Obligation: Q DP problem: The TRS P consists of the following rules: U23^1(active(X)) -> U23^1(X) U23^1(mark(X)) -> U23^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (153) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (154) Obligation: Q DP problem: The TRS P consists of the following rules: U23^1(active(X)) -> U23^1(X) U23^1(mark(X)) -> U23^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (155) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (156) Obligation: Q DP problem: The TRS P consists of the following rules: U23^1(active(X)) -> U23^1(X) U23^1(mark(X)) -> U23^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (157) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U23^1(active(X)) -> U23^1(X) The graph contains the following edges 1 > 1 *U23^1(mark(X)) -> U23^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (158) YES ---------------------------------------- (159) Obligation: Q DP problem: The TRS P consists of the following rules: U22^1(X1, mark(X2)) -> U22^1(X1, X2) U22^1(mark(X1), X2) -> U22^1(X1, X2) U22^1(active(X1), X2) -> U22^1(X1, X2) U22^1(X1, active(X2)) -> U22^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (160) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (161) Obligation: Q DP problem: The TRS P consists of the following rules: U22^1(X1, mark(X2)) -> U22^1(X1, X2) U22^1(mark(X1), X2) -> U22^1(X1, X2) U22^1(active(X1), X2) -> U22^1(X1, X2) U22^1(X1, active(X2)) -> U22^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (162) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (163) Obligation: Q DP problem: The TRS P consists of the following rules: U22^1(X1, mark(X2)) -> U22^1(X1, X2) U22^1(mark(X1), X2) -> U22^1(X1, X2) U22^1(active(X1), X2) -> U22^1(X1, X2) U22^1(X1, active(X2)) -> U22^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (164) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U22^1(X1, mark(X2)) -> U22^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U22^1(mark(X1), X2) -> U22^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U22^1(active(X1), X2) -> U22^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U22^1(X1, active(X2)) -> U22^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (165) YES ---------------------------------------- (166) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(X1, mark(X2)) -> U21^1(X1, X2) U21^1(mark(X1), X2) -> U21^1(X1, X2) U21^1(active(X1), X2) -> U21^1(X1, X2) U21^1(X1, active(X2)) -> U21^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (167) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (168) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(X1, mark(X2)) -> U21^1(X1, X2) U21^1(mark(X1), X2) -> U21^1(X1, X2) U21^1(active(X1), X2) -> U21^1(X1, X2) U21^1(X1, active(X2)) -> U21^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (169) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (170) Obligation: Q DP problem: The TRS P consists of the following rules: U21^1(X1, mark(X2)) -> U21^1(X1, X2) U21^1(mark(X1), X2) -> U21^1(X1, X2) U21^1(active(X1), X2) -> U21^1(X1, X2) U21^1(X1, active(X2)) -> U21^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (171) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U21^1(X1, mark(X2)) -> U21^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U21^1(mark(X1), X2) -> U21^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U21^1(active(X1), X2) -> U21^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U21^1(X1, active(X2)) -> U21^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (172) YES ---------------------------------------- (173) Obligation: Q DP problem: The TRS P consists of the following rules: TAKE(X1, mark(X2)) -> TAKE(X1, X2) TAKE(mark(X1), X2) -> TAKE(X1, X2) TAKE(active(X1), X2) -> TAKE(X1, X2) TAKE(X1, active(X2)) -> TAKE(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (174) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (175) Obligation: Q DP problem: The TRS P consists of the following rules: TAKE(X1, mark(X2)) -> TAKE(X1, X2) TAKE(mark(X1), X2) -> TAKE(X1, X2) TAKE(active(X1), X2) -> TAKE(X1, X2) TAKE(X1, active(X2)) -> TAKE(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (176) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (177) Obligation: Q DP problem: The TRS P consists of the following rules: TAKE(X1, mark(X2)) -> TAKE(X1, X2) TAKE(mark(X1), X2) -> TAKE(X1, X2) TAKE(active(X1), X2) -> TAKE(X1, X2) TAKE(X1, active(X2)) -> TAKE(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (178) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *TAKE(X1, mark(X2)) -> TAKE(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *TAKE(mark(X1), X2) -> TAKE(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *TAKE(active(X1), X2) -> TAKE(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *TAKE(X1, active(X2)) -> TAKE(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (179) YES ---------------------------------------- (180) Obligation: Q DP problem: The TRS P consists of the following rules: U136^1(X1, mark(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(mark(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, mark(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, mark(X4)) -> U136^1(X1, X2, X3, X4) U136^1(active(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, active(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, active(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, active(X4)) -> U136^1(X1, X2, X3, X4) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (181) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (182) Obligation: Q DP problem: The TRS P consists of the following rules: U136^1(X1, mark(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(mark(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, mark(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, mark(X4)) -> U136^1(X1, X2, X3, X4) U136^1(active(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, active(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, active(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, active(X4)) -> U136^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (183) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (184) Obligation: Q DP problem: The TRS P consists of the following rules: U136^1(X1, mark(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(mark(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, mark(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, mark(X4)) -> U136^1(X1, X2, X3, X4) U136^1(active(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, active(X2), X3, X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, active(X3), X4) -> U136^1(X1, X2, X3, X4) U136^1(X1, X2, X3, active(X4)) -> U136^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (185) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U136^1(X1, mark(X2), X3, X4) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U136^1(mark(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U136^1(X1, X2, mark(X3), X4) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U136^1(X1, X2, X3, mark(X4)) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 *U136^1(active(X1), X2, X3, X4) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U136^1(X1, active(X2), X3, X4) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U136^1(X1, X2, active(X3), X4) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U136^1(X1, X2, X3, active(X4)) -> U136^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 ---------------------------------------- (186) YES ---------------------------------------- (187) Obligation: Q DP problem: The TRS P consists of the following rules: U135^1(X1, mark(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(mark(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, mark(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, mark(X4)) -> U135^1(X1, X2, X3, X4) U135^1(active(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, active(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, active(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, active(X4)) -> U135^1(X1, X2, X3, X4) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (188) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (189) Obligation: Q DP problem: The TRS P consists of the following rules: U135^1(X1, mark(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(mark(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, mark(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, mark(X4)) -> U135^1(X1, X2, X3, X4) U135^1(active(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, active(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, active(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, active(X4)) -> U135^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (190) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (191) Obligation: Q DP problem: The TRS P consists of the following rules: U135^1(X1, mark(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(mark(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, mark(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, mark(X4)) -> U135^1(X1, X2, X3, X4) U135^1(active(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, active(X2), X3, X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, active(X3), X4) -> U135^1(X1, X2, X3, X4) U135^1(X1, X2, X3, active(X4)) -> U135^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (192) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U135^1(X1, mark(X2), X3, X4) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U135^1(mark(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U135^1(X1, X2, mark(X3), X4) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U135^1(X1, X2, X3, mark(X4)) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 *U135^1(active(X1), X2, X3, X4) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U135^1(X1, active(X2), X3, X4) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U135^1(X1, X2, active(X3), X4) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U135^1(X1, X2, X3, active(X4)) -> U135^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 ---------------------------------------- (193) YES ---------------------------------------- (194) Obligation: Q DP problem: The TRS P consists of the following rules: U134^1(X1, mark(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(mark(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, mark(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, mark(X4)) -> U134^1(X1, X2, X3, X4) U134^1(active(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, active(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, active(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, active(X4)) -> U134^1(X1, X2, X3, X4) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (195) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: U134^1(X1, mark(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(mark(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, mark(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, mark(X4)) -> U134^1(X1, X2, X3, X4) U134^1(active(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, active(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, active(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, active(X4)) -> U134^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (197) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (198) Obligation: Q DP problem: The TRS P consists of the following rules: U134^1(X1, mark(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(mark(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, mark(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, mark(X4)) -> U134^1(X1, X2, X3, X4) U134^1(active(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, active(X2), X3, X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, active(X3), X4) -> U134^1(X1, X2, X3, X4) U134^1(X1, X2, X3, active(X4)) -> U134^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (199) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U134^1(X1, mark(X2), X3, X4) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U134^1(mark(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U134^1(X1, X2, mark(X3), X4) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U134^1(X1, X2, X3, mark(X4)) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 *U134^1(active(X1), X2, X3, X4) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U134^1(X1, active(X2), X3, X4) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U134^1(X1, X2, active(X3), X4) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U134^1(X1, X2, X3, active(X4)) -> U134^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 ---------------------------------------- (200) YES ---------------------------------------- (201) Obligation: Q DP problem: The TRS P consists of the following rules: U133^1(X1, mark(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(mark(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, mark(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, mark(X4)) -> U133^1(X1, X2, X3, X4) U133^1(active(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, active(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, active(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, active(X4)) -> U133^1(X1, X2, X3, X4) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (202) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (203) Obligation: Q DP problem: The TRS P consists of the following rules: U133^1(X1, mark(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(mark(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, mark(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, mark(X4)) -> U133^1(X1, X2, X3, X4) U133^1(active(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, active(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, active(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, active(X4)) -> U133^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (204) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (205) Obligation: Q DP problem: The TRS P consists of the following rules: U133^1(X1, mark(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(mark(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, mark(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, mark(X4)) -> U133^1(X1, X2, X3, X4) U133^1(active(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, active(X2), X3, X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, active(X3), X4) -> U133^1(X1, X2, X3, X4) U133^1(X1, X2, X3, active(X4)) -> U133^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (206) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U133^1(X1, mark(X2), X3, X4) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U133^1(mark(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U133^1(X1, X2, mark(X3), X4) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U133^1(X1, X2, X3, mark(X4)) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 *U133^1(active(X1), X2, X3, X4) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U133^1(X1, active(X2), X3, X4) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U133^1(X1, X2, active(X3), X4) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U133^1(X1, X2, X3, active(X4)) -> U133^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 ---------------------------------------- (207) YES ---------------------------------------- (208) Obligation: Q DP problem: The TRS P consists of the following rules: U132^1(X1, mark(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(mark(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, mark(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, mark(X4)) -> U132^1(X1, X2, X3, X4) U132^1(active(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, active(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, active(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, active(X4)) -> U132^1(X1, X2, X3, X4) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (209) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (210) Obligation: Q DP problem: The TRS P consists of the following rules: U132^1(X1, mark(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(mark(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, mark(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, mark(X4)) -> U132^1(X1, X2, X3, X4) U132^1(active(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, active(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, active(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, active(X4)) -> U132^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (211) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (212) Obligation: Q DP problem: The TRS P consists of the following rules: U132^1(X1, mark(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(mark(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, mark(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, mark(X4)) -> U132^1(X1, X2, X3, X4) U132^1(active(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, active(X2), X3, X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, active(X3), X4) -> U132^1(X1, X2, X3, X4) U132^1(X1, X2, X3, active(X4)) -> U132^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (213) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U132^1(X1, mark(X2), X3, X4) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U132^1(mark(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U132^1(X1, X2, mark(X3), X4) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U132^1(X1, X2, X3, mark(X4)) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 *U132^1(active(X1), X2, X3, X4) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U132^1(X1, active(X2), X3, X4) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U132^1(X1, X2, active(X3), X4) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U132^1(X1, X2, X3, active(X4)) -> U132^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 ---------------------------------------- (214) YES ---------------------------------------- (215) Obligation: Q DP problem: The TRS P consists of the following rules: U131^1(X1, mark(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(mark(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, mark(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, mark(X4)) -> U131^1(X1, X2, X3, X4) U131^1(active(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, active(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, active(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, active(X4)) -> U131^1(X1, X2, X3, X4) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (216) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (217) Obligation: Q DP problem: The TRS P consists of the following rules: U131^1(X1, mark(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(mark(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, mark(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, mark(X4)) -> U131^1(X1, X2, X3, X4) U131^1(active(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, active(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, active(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, active(X4)) -> U131^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (218) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (219) Obligation: Q DP problem: The TRS P consists of the following rules: U131^1(X1, mark(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(mark(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, mark(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, mark(X4)) -> U131^1(X1, X2, X3, X4) U131^1(active(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, active(X2), X3, X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, active(X3), X4) -> U131^1(X1, X2, X3, X4) U131^1(X1, X2, X3, active(X4)) -> U131^1(X1, X2, X3, X4) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (220) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U131^1(X1, mark(X2), X3, X4) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U131^1(mark(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U131^1(X1, X2, mark(X3), X4) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U131^1(X1, X2, X3, mark(X4)) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 *U131^1(active(X1), X2, X3, X4) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3, 4 >= 4 *U131^1(X1, active(X2), X3, X4) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3, 4 >= 4 *U131^1(X1, X2, active(X3), X4) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3, 4 >= 4 *U131^1(X1, X2, X3, active(X4)) -> U131^1(X1, X2, X3, X4) The graph contains the following edges 1 >= 1, 2 >= 2, 3 >= 3, 4 > 4 ---------------------------------------- (221) YES ---------------------------------------- (222) Obligation: Q DP problem: The TRS P consists of the following rules: U122^1(active(X)) -> U122^1(X) U122^1(mark(X)) -> U122^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (223) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (224) Obligation: Q DP problem: The TRS P consists of the following rules: U122^1(active(X)) -> U122^1(X) U122^1(mark(X)) -> U122^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (225) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (226) Obligation: Q DP problem: The TRS P consists of the following rules: U122^1(active(X)) -> U122^1(X) U122^1(mark(X)) -> U122^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (227) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U122^1(active(X)) -> U122^1(X) The graph contains the following edges 1 > 1 *U122^1(mark(X)) -> U122^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (228) YES ---------------------------------------- (229) Obligation: Q DP problem: The TRS P consists of the following rules: U121^1(X1, mark(X2)) -> U121^1(X1, X2) U121^1(mark(X1), X2) -> U121^1(X1, X2) U121^1(active(X1), X2) -> U121^1(X1, X2) U121^1(X1, active(X2)) -> U121^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (230) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (231) Obligation: Q DP problem: The TRS P consists of the following rules: U121^1(X1, mark(X2)) -> U121^1(X1, X2) U121^1(mark(X1), X2) -> U121^1(X1, X2) U121^1(active(X1), X2) -> U121^1(X1, X2) U121^1(X1, active(X2)) -> U121^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (232) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (233) Obligation: Q DP problem: The TRS P consists of the following rules: U121^1(X1, mark(X2)) -> U121^1(X1, X2) U121^1(mark(X1), X2) -> U121^1(X1, X2) U121^1(active(X1), X2) -> U121^1(X1, X2) U121^1(X1, active(X2)) -> U121^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (234) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U121^1(X1, mark(X2)) -> U121^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U121^1(mark(X1), X2) -> U121^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U121^1(active(X1), X2) -> U121^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U121^1(X1, active(X2)) -> U121^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (235) YES ---------------------------------------- (236) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATLIST(active(X)) -> ISNATLIST(X) ISNATLIST(mark(X)) -> ISNATLIST(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (237) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (238) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATLIST(active(X)) -> ISNATLIST(X) ISNATLIST(mark(X)) -> ISNATLIST(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (239) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (240) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATLIST(active(X)) -> ISNATLIST(X) ISNATLIST(mark(X)) -> ISNATLIST(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (241) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISNATLIST(active(X)) -> ISNATLIST(X) The graph contains the following edges 1 > 1 *ISNATLIST(mark(X)) -> ISNATLIST(X) The graph contains the following edges 1 > 1 ---------------------------------------- (242) YES ---------------------------------------- (243) Obligation: Q DP problem: The TRS P consists of the following rules: U13^1(active(X)) -> U13^1(X) U13^1(mark(X)) -> U13^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (244) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (245) Obligation: Q DP problem: The TRS P consists of the following rules: U13^1(active(X)) -> U13^1(X) U13^1(mark(X)) -> U13^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (246) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (247) Obligation: Q DP problem: The TRS P consists of the following rules: U13^1(active(X)) -> U13^1(X) U13^1(mark(X)) -> U13^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (248) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U13^1(active(X)) -> U13^1(X) The graph contains the following edges 1 > 1 *U13^1(mark(X)) -> U13^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (249) YES ---------------------------------------- (250) Obligation: Q DP problem: The TRS P consists of the following rules: LENGTH(active(X)) -> LENGTH(X) LENGTH(mark(X)) -> LENGTH(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (251) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (252) Obligation: Q DP problem: The TRS P consists of the following rules: LENGTH(active(X)) -> LENGTH(X) LENGTH(mark(X)) -> LENGTH(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (253) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (254) Obligation: Q DP problem: The TRS P consists of the following rules: LENGTH(active(X)) -> LENGTH(X) LENGTH(mark(X)) -> LENGTH(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (255) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *LENGTH(active(X)) -> LENGTH(X) The graph contains the following edges 1 > 1 *LENGTH(mark(X)) -> LENGTH(X) The graph contains the following edges 1 > 1 ---------------------------------------- (256) YES ---------------------------------------- (257) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (258) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (259) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (260) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (261) Obligation: Q DP problem: The TRS P consists of the following rules: S(active(X)) -> S(X) S(mark(X)) -> S(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (262) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *S(active(X)) -> S(X) The graph contains the following edges 1 > 1 *S(mark(X)) -> S(X) The graph contains the following edges 1 > 1 ---------------------------------------- (263) YES ---------------------------------------- (264) Obligation: Q DP problem: The TRS P consists of the following rules: U114^1(X1, mark(X2)) -> U114^1(X1, X2) U114^1(mark(X1), X2) -> U114^1(X1, X2) U114^1(active(X1), X2) -> U114^1(X1, X2) U114^1(X1, active(X2)) -> U114^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (265) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (266) Obligation: Q DP problem: The TRS P consists of the following rules: U114^1(X1, mark(X2)) -> U114^1(X1, X2) U114^1(mark(X1), X2) -> U114^1(X1, X2) U114^1(active(X1), X2) -> U114^1(X1, X2) U114^1(X1, active(X2)) -> U114^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (267) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (268) Obligation: Q DP problem: The TRS P consists of the following rules: U114^1(X1, mark(X2)) -> U114^1(X1, X2) U114^1(mark(X1), X2) -> U114^1(X1, X2) U114^1(active(X1), X2) -> U114^1(X1, X2) U114^1(X1, active(X2)) -> U114^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (269) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U114^1(X1, mark(X2)) -> U114^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U114^1(mark(X1), X2) -> U114^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U114^1(active(X1), X2) -> U114^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U114^1(X1, active(X2)) -> U114^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (270) YES ---------------------------------------- (271) Obligation: Q DP problem: The TRS P consists of the following rules: U113^1(X1, mark(X2), X3) -> U113^1(X1, X2, X3) U113^1(mark(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, mark(X3)) -> U113^1(X1, X2, X3) U113^1(active(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, active(X2), X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, active(X3)) -> U113^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (272) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (273) Obligation: Q DP problem: The TRS P consists of the following rules: U113^1(X1, mark(X2), X3) -> U113^1(X1, X2, X3) U113^1(mark(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, mark(X3)) -> U113^1(X1, X2, X3) U113^1(active(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, active(X2), X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, active(X3)) -> U113^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (274) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (275) Obligation: Q DP problem: The TRS P consists of the following rules: U113^1(X1, mark(X2), X3) -> U113^1(X1, X2, X3) U113^1(mark(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, mark(X3)) -> U113^1(X1, X2, X3) U113^1(active(X1), X2, X3) -> U113^1(X1, X2, X3) U113^1(X1, active(X2), X3) -> U113^1(X1, X2, X3) U113^1(X1, X2, active(X3)) -> U113^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (276) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U113^1(X1, mark(X2), X3) -> U113^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U113^1(mark(X1), X2, X3) -> U113^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U113^1(X1, X2, mark(X3)) -> U113^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U113^1(active(X1), X2, X3) -> U113^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U113^1(X1, active(X2), X3) -> U113^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U113^1(X1, X2, active(X3)) -> U113^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (277) YES ---------------------------------------- (278) Obligation: Q DP problem: The TRS P consists of the following rules: U112^1(X1, mark(X2), X3) -> U112^1(X1, X2, X3) U112^1(mark(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, mark(X3)) -> U112^1(X1, X2, X3) U112^1(active(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, active(X2), X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, active(X3)) -> U112^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (279) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (280) Obligation: Q DP problem: The TRS P consists of the following rules: U112^1(X1, mark(X2), X3) -> U112^1(X1, X2, X3) U112^1(mark(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, mark(X3)) -> U112^1(X1, X2, X3) U112^1(active(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, active(X2), X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, active(X3)) -> U112^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (281) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (282) Obligation: Q DP problem: The TRS P consists of the following rules: U112^1(X1, mark(X2), X3) -> U112^1(X1, X2, X3) U112^1(mark(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, mark(X3)) -> U112^1(X1, X2, X3) U112^1(active(X1), X2, X3) -> U112^1(X1, X2, X3) U112^1(X1, active(X2), X3) -> U112^1(X1, X2, X3) U112^1(X1, X2, active(X3)) -> U112^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (283) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U112^1(X1, mark(X2), X3) -> U112^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U112^1(mark(X1), X2, X3) -> U112^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U112^1(X1, X2, mark(X3)) -> U112^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U112^1(active(X1), X2, X3) -> U112^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U112^1(X1, active(X2), X3) -> U112^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U112^1(X1, X2, active(X3)) -> U112^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (284) YES ---------------------------------------- (285) Obligation: Q DP problem: The TRS P consists of the following rules: U111^1(X1, mark(X2), X3) -> U111^1(X1, X2, X3) U111^1(mark(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, mark(X3)) -> U111^1(X1, X2, X3) U111^1(active(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, active(X2), X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, active(X3)) -> U111^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (286) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (287) Obligation: Q DP problem: The TRS P consists of the following rules: U111^1(X1, mark(X2), X3) -> U111^1(X1, X2, X3) U111^1(mark(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, mark(X3)) -> U111^1(X1, X2, X3) U111^1(active(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, active(X2), X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, active(X3)) -> U111^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (288) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (289) Obligation: Q DP problem: The TRS P consists of the following rules: U111^1(X1, mark(X2), X3) -> U111^1(X1, X2, X3) U111^1(mark(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, mark(X3)) -> U111^1(X1, X2, X3) U111^1(active(X1), X2, X3) -> U111^1(X1, X2, X3) U111^1(X1, active(X2), X3) -> U111^1(X1, X2, X3) U111^1(X1, X2, active(X3)) -> U111^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (290) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U111^1(X1, mark(X2), X3) -> U111^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U111^1(mark(X1), X2, X3) -> U111^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U111^1(X1, X2, mark(X3)) -> U111^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U111^1(active(X1), X2, X3) -> U111^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U111^1(X1, active(X2), X3) -> U111^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U111^1(X1, X2, active(X3)) -> U111^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (291) YES ---------------------------------------- (292) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(X1, mark(X2)) -> U12^1(X1, X2) U12^1(mark(X1), X2) -> U12^1(X1, X2) U12^1(active(X1), X2) -> U12^1(X1, X2) U12^1(X1, active(X2)) -> U12^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (293) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (294) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(X1, mark(X2)) -> U12^1(X1, X2) U12^1(mark(X1), X2) -> U12^1(X1, X2) U12^1(active(X1), X2) -> U12^1(X1, X2) U12^1(X1, active(X2)) -> U12^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (295) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (296) Obligation: Q DP problem: The TRS P consists of the following rules: U12^1(X1, mark(X2)) -> U12^1(X1, X2) U12^1(mark(X1), X2) -> U12^1(X1, X2) U12^1(active(X1), X2) -> U12^1(X1, X2) U12^1(X1, active(X2)) -> U12^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (297) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U12^1(X1, mark(X2)) -> U12^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U12^1(mark(X1), X2) -> U12^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U12^1(active(X1), X2) -> U12^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U12^1(X1, active(X2)) -> U12^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (298) YES ---------------------------------------- (299) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (300) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (301) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (302) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (303) Obligation: Q DP problem: The TRS P consists of the following rules: U11^1(X1, mark(X2)) -> U11^1(X1, X2) U11^1(mark(X1), X2) -> U11^1(X1, X2) U11^1(active(X1), X2) -> U11^1(X1, X2) U11^1(X1, active(X2)) -> U11^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (304) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U11^1(X1, mark(X2)) -> U11^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U11^1(mark(X1), X2) -> U11^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U11^1(active(X1), X2) -> U11^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U11^1(X1, active(X2)) -> U11^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (305) YES ---------------------------------------- (306) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATILIST(active(X)) -> ISNATILIST(X) ISNATILIST(mark(X)) -> ISNATILIST(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (307) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (308) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATILIST(active(X)) -> ISNATILIST(X) ISNATILIST(mark(X)) -> ISNATILIST(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (309) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (310) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATILIST(active(X)) -> ISNATILIST(X) ISNATILIST(mark(X)) -> ISNATILIST(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (311) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISNATILIST(active(X)) -> ISNATILIST(X) The graph contains the following edges 1 > 1 *ISNATILIST(mark(X)) -> ISNATILIST(X) The graph contains the following edges 1 > 1 ---------------------------------------- (312) YES ---------------------------------------- (313) Obligation: Q DP problem: The TRS P consists of the following rules: U106^1(active(X)) -> U106^1(X) U106^1(mark(X)) -> U106^1(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (314) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (315) Obligation: Q DP problem: The TRS P consists of the following rules: U106^1(active(X)) -> U106^1(X) U106^1(mark(X)) -> U106^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (316) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (317) Obligation: Q DP problem: The TRS P consists of the following rules: U106^1(active(X)) -> U106^1(X) U106^1(mark(X)) -> U106^1(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (318) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U106^1(active(X)) -> U106^1(X) The graph contains the following edges 1 > 1 *U106^1(mark(X)) -> U106^1(X) The graph contains the following edges 1 > 1 ---------------------------------------- (319) YES ---------------------------------------- (320) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(active(X)) -> ISNAT(X) ISNAT(mark(X)) -> ISNAT(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (321) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (322) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(active(X)) -> ISNAT(X) ISNAT(mark(X)) -> ISNAT(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (323) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (324) Obligation: Q DP problem: The TRS P consists of the following rules: ISNAT(active(X)) -> ISNAT(X) ISNAT(mark(X)) -> ISNAT(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (325) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISNAT(active(X)) -> ISNAT(X) The graph contains the following edges 1 > 1 *ISNAT(mark(X)) -> ISNAT(X) The graph contains the following edges 1 > 1 ---------------------------------------- (326) YES ---------------------------------------- (327) Obligation: Q DP problem: The TRS P consists of the following rules: U105^1(X1, mark(X2)) -> U105^1(X1, X2) U105^1(mark(X1), X2) -> U105^1(X1, X2) U105^1(active(X1), X2) -> U105^1(X1, X2) U105^1(X1, active(X2)) -> U105^1(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (328) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (329) Obligation: Q DP problem: The TRS P consists of the following rules: U105^1(X1, mark(X2)) -> U105^1(X1, X2) U105^1(mark(X1), X2) -> U105^1(X1, X2) U105^1(active(X1), X2) -> U105^1(X1, X2) U105^1(X1, active(X2)) -> U105^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (330) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (331) Obligation: Q DP problem: The TRS P consists of the following rules: U105^1(X1, mark(X2)) -> U105^1(X1, X2) U105^1(mark(X1), X2) -> U105^1(X1, X2) U105^1(active(X1), X2) -> U105^1(X1, X2) U105^1(X1, active(X2)) -> U105^1(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (332) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U105^1(X1, mark(X2)) -> U105^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *U105^1(mark(X1), X2) -> U105^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U105^1(active(X1), X2) -> U105^1(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *U105^1(X1, active(X2)) -> U105^1(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (333) YES ---------------------------------------- (334) Obligation: Q DP problem: The TRS P consists of the following rules: U104^1(X1, mark(X2), X3) -> U104^1(X1, X2, X3) U104^1(mark(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, mark(X3)) -> U104^1(X1, X2, X3) U104^1(active(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, active(X2), X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, active(X3)) -> U104^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (335) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (336) Obligation: Q DP problem: The TRS P consists of the following rules: U104^1(X1, mark(X2), X3) -> U104^1(X1, X2, X3) U104^1(mark(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, mark(X3)) -> U104^1(X1, X2, X3) U104^1(active(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, active(X2), X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, active(X3)) -> U104^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (337) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (338) Obligation: Q DP problem: The TRS P consists of the following rules: U104^1(X1, mark(X2), X3) -> U104^1(X1, X2, X3) U104^1(mark(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, mark(X3)) -> U104^1(X1, X2, X3) U104^1(active(X1), X2, X3) -> U104^1(X1, X2, X3) U104^1(X1, active(X2), X3) -> U104^1(X1, X2, X3) U104^1(X1, X2, active(X3)) -> U104^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (339) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U104^1(X1, mark(X2), X3) -> U104^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U104^1(mark(X1), X2, X3) -> U104^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U104^1(X1, X2, mark(X3)) -> U104^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U104^1(active(X1), X2, X3) -> U104^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U104^1(X1, active(X2), X3) -> U104^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U104^1(X1, X2, active(X3)) -> U104^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (340) YES ---------------------------------------- (341) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATILISTKIND(active(X)) -> ISNATILISTKIND(X) ISNATILISTKIND(mark(X)) -> ISNATILISTKIND(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (342) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (343) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATILISTKIND(active(X)) -> ISNATILISTKIND(X) ISNATILISTKIND(mark(X)) -> ISNATILISTKIND(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (344) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (345) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATILISTKIND(active(X)) -> ISNATILISTKIND(X) ISNATILISTKIND(mark(X)) -> ISNATILISTKIND(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (346) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISNATILISTKIND(active(X)) -> ISNATILISTKIND(X) The graph contains the following edges 1 > 1 *ISNATILISTKIND(mark(X)) -> ISNATILISTKIND(X) The graph contains the following edges 1 > 1 ---------------------------------------- (347) YES ---------------------------------------- (348) Obligation: Q DP problem: The TRS P consists of the following rules: U103^1(X1, mark(X2), X3) -> U103^1(X1, X2, X3) U103^1(mark(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, mark(X3)) -> U103^1(X1, X2, X3) U103^1(active(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, active(X2), X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, active(X3)) -> U103^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (349) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (350) Obligation: Q DP problem: The TRS P consists of the following rules: U103^1(X1, mark(X2), X3) -> U103^1(X1, X2, X3) U103^1(mark(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, mark(X3)) -> U103^1(X1, X2, X3) U103^1(active(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, active(X2), X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, active(X3)) -> U103^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (351) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (352) Obligation: Q DP problem: The TRS P consists of the following rules: U103^1(X1, mark(X2), X3) -> U103^1(X1, X2, X3) U103^1(mark(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, mark(X3)) -> U103^1(X1, X2, X3) U103^1(active(X1), X2, X3) -> U103^1(X1, X2, X3) U103^1(X1, active(X2), X3) -> U103^1(X1, X2, X3) U103^1(X1, X2, active(X3)) -> U103^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (353) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U103^1(X1, mark(X2), X3) -> U103^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U103^1(mark(X1), X2, X3) -> U103^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U103^1(X1, X2, mark(X3)) -> U103^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U103^1(active(X1), X2, X3) -> U103^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U103^1(X1, active(X2), X3) -> U103^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U103^1(X1, X2, active(X3)) -> U103^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (354) YES ---------------------------------------- (355) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATKIND(active(X)) -> ISNATKIND(X) ISNATKIND(mark(X)) -> ISNATKIND(X) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (356) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (357) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATKIND(active(X)) -> ISNATKIND(X) ISNATKIND(mark(X)) -> ISNATKIND(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (358) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (359) Obligation: Q DP problem: The TRS P consists of the following rules: ISNATKIND(active(X)) -> ISNATKIND(X) ISNATKIND(mark(X)) -> ISNATKIND(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (360) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *ISNATKIND(active(X)) -> ISNATKIND(X) The graph contains the following edges 1 > 1 *ISNATKIND(mark(X)) -> ISNATKIND(X) The graph contains the following edges 1 > 1 ---------------------------------------- (361) YES ---------------------------------------- (362) Obligation: Q DP problem: The TRS P consists of the following rules: U102^1(X1, mark(X2), X3) -> U102^1(X1, X2, X3) U102^1(mark(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, mark(X3)) -> U102^1(X1, X2, X3) U102^1(active(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, active(X2), X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, active(X3)) -> U102^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (363) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (364) Obligation: Q DP problem: The TRS P consists of the following rules: U102^1(X1, mark(X2), X3) -> U102^1(X1, X2, X3) U102^1(mark(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, mark(X3)) -> U102^1(X1, X2, X3) U102^1(active(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, active(X2), X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, active(X3)) -> U102^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (365) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (366) Obligation: Q DP problem: The TRS P consists of the following rules: U102^1(X1, mark(X2), X3) -> U102^1(X1, X2, X3) U102^1(mark(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, mark(X3)) -> U102^1(X1, X2, X3) U102^1(active(X1), X2, X3) -> U102^1(X1, X2, X3) U102^1(X1, active(X2), X3) -> U102^1(X1, X2, X3) U102^1(X1, X2, active(X3)) -> U102^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (367) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U102^1(X1, mark(X2), X3) -> U102^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U102^1(mark(X1), X2, X3) -> U102^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U102^1(X1, X2, mark(X3)) -> U102^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U102^1(active(X1), X2, X3) -> U102^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U102^1(X1, active(X2), X3) -> U102^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U102^1(X1, X2, active(X3)) -> U102^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (368) YES ---------------------------------------- (369) Obligation: Q DP problem: The TRS P consists of the following rules: U101^1(X1, mark(X2), X3) -> U101^1(X1, X2, X3) U101^1(mark(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, mark(X3)) -> U101^1(X1, X2, X3) U101^1(active(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, active(X2), X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, active(X3)) -> U101^1(X1, X2, X3) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (370) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (371) Obligation: Q DP problem: The TRS P consists of the following rules: U101^1(X1, mark(X2), X3) -> U101^1(X1, X2, X3) U101^1(mark(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, mark(X3)) -> U101^1(X1, X2, X3) U101^1(active(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, active(X2), X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, active(X3)) -> U101^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (372) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (373) Obligation: Q DP problem: The TRS P consists of the following rules: U101^1(X1, mark(X2), X3) -> U101^1(X1, X2, X3) U101^1(mark(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, mark(X3)) -> U101^1(X1, X2, X3) U101^1(active(X1), X2, X3) -> U101^1(X1, X2, X3) U101^1(X1, active(X2), X3) -> U101^1(X1, X2, X3) U101^1(X1, X2, active(X3)) -> U101^1(X1, X2, X3) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (374) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *U101^1(X1, mark(X2), X3) -> U101^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U101^1(mark(X1), X2, X3) -> U101^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U101^1(X1, X2, mark(X3)) -> U101^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 *U101^1(active(X1), X2, X3) -> U101^1(X1, X2, X3) The graph contains the following edges 1 > 1, 2 >= 2, 3 >= 3 *U101^1(X1, active(X2), X3) -> U101^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 > 2, 3 >= 3 *U101^1(X1, X2, active(X3)) -> U101^1(X1, X2, X3) The graph contains the following edges 1 >= 1, 2 >= 2, 3 > 3 ---------------------------------------- (375) YES ---------------------------------------- (376) Obligation: Q DP problem: The TRS P consists of the following rules: CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (377) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (378) Obligation: Q DP problem: The TRS P consists of the following rules: CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (379) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (380) Obligation: Q DP problem: The TRS P consists of the following rules: CONS(X1, mark(X2)) -> CONS(X1, X2) CONS(mark(X1), X2) -> CONS(X1, X2) CONS(active(X1), X2) -> CONS(X1, X2) CONS(X1, active(X2)) -> CONS(X1, X2) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (381) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *CONS(X1, mark(X2)) -> CONS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 *CONS(mark(X1), X2) -> CONS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *CONS(active(X1), X2) -> CONS(X1, X2) The graph contains the following edges 1 > 1, 2 >= 2 *CONS(X1, active(X2)) -> CONS(X1, X2) The graph contains the following edges 1 >= 1, 2 > 2 ---------------------------------------- (382) YES ---------------------------------------- (383) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> ACTIVE(U106(mark(X))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> ACTIVE(U13(mark(X))) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) MARK(U122(X)) -> ACTIVE(U122(mark(X))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> ACTIVE(U23(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> ACTIVE(U33(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> ACTIVE(U46(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> ACTIVE(U52(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> ACTIVE(U62(mark(X))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> ACTIVE(U96(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> ACTIVE(U71(mark(X))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> ACTIVE(U81(mark(X))) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) active(U106(tt)) -> mark(tt) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) active(U114(tt, L)) -> mark(s(length(L))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) active(U23(tt)) -> mark(tt) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) active(U32(tt, V)) -> mark(U33(isNatList(V))) active(U33(tt)) -> mark(tt) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) active(U46(tt)) -> mark(tt) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) active(U52(tt)) -> mark(tt) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) active(isNatIList(zeros)) -> mark(tt) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) active(isNatKind(0)) -> mark(tt) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) active(isNatList(nil)) -> mark(tt) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) active(length(nil)) -> mark(0) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) mark(0) -> active(0) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) mark(tt) -> active(tt) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) mark(isNatKind(X)) -> active(isNatKind(X)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) mark(isNat(X)) -> active(isNat(X)) mark(U106(X)) -> active(U106(mark(X))) mark(isNatIList(X)) -> active(isNatIList(X)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) mark(s(X)) -> active(s(mark(X))) mark(length(X)) -> active(length(mark(X))) mark(U13(X)) -> active(U13(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) mark(U122(X)) -> active(U122(mark(X))) mark(nil) -> active(nil) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) mark(U23(X)) -> active(U23(mark(X))) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) mark(U33(X)) -> active(U33(mark(X))) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) mark(U46(X)) -> active(U46(mark(X))) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) mark(U52(X)) -> active(U52(mark(X))) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) mark(U62(X)) -> active(U62(mark(X))) mark(U71(X)) -> active(U71(mark(X))) mark(U81(X)) -> active(U81(mark(X))) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) mark(U96(X)) -> active(U96(mark(X))) cons(mark(X1), X2) -> cons(X1, X2) cons(X1, mark(X2)) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) isNatKind(mark(X)) -> isNatKind(X) isNatKind(active(X)) -> isNatKind(X) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) isNatIListKind(mark(X)) -> isNatIListKind(X) isNatIListKind(active(X)) -> isNatIListKind(X) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(mark(X1), X2) -> U105(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) isNat(mark(X)) -> isNat(X) isNat(active(X)) -> isNat(X) U106(mark(X)) -> U106(X) U106(active(X)) -> U106(X) isNatIList(mark(X)) -> isNatIList(X) isNatIList(active(X)) -> isNatIList(X) U11(mark(X1), X2) -> U11(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(mark(X1), X2) -> U114(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) length(mark(X)) -> length(X) length(active(X)) -> length(X) U13(mark(X)) -> U13(X) U13(active(X)) -> U13(X) isNatList(mark(X)) -> isNatList(X) isNatList(active(X)) -> isNatList(X) U121(mark(X1), X2) -> U121(X1, X2) U121(X1, mark(X2)) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U122(mark(X)) -> U122(X) U122(active(X)) -> U122(X) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) take(mark(X1), X2) -> take(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(mark(X)) -> U23(X) U23(active(X)) -> U23(X) U31(mark(X1), X2) -> U31(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(mark(X)) -> U33(X) U33(active(X)) -> U33(X) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(mark(X1), X2) -> U45(X1, X2) U45(X1, mark(X2)) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(mark(X)) -> U46(X) U46(active(X)) -> U46(X) U51(mark(X1), X2) -> U51(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U52(mark(X)) -> U52(X) U52(active(X)) -> U52(X) U61(mark(X1), X2) -> U61(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U62(mark(X)) -> U62(X) U62(active(X)) -> U62(X) U71(mark(X)) -> U71(X) U71(active(X)) -> U71(X) U81(mark(X)) -> U81(X) U81(active(X)) -> U81(X) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(mark(X1), X2) -> U95(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(mark(X)) -> U96(X) U96(active(X)) -> U96(X) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (384) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (385) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> ACTIVE(U106(mark(X))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> ACTIVE(U13(mark(X))) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) MARK(U122(X)) -> ACTIVE(U122(mark(X))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> ACTIVE(U23(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> ACTIVE(U33(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> ACTIVE(U46(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> ACTIVE(U52(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> ACTIVE(U62(mark(X))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> ACTIVE(U96(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> ACTIVE(U71(mark(X))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> ACTIVE(U81(mark(X))) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (386) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U106(X)) -> ACTIVE(U106(mark(X))) MARK(U13(X)) -> ACTIVE(U13(mark(X))) MARK(U122(X)) -> ACTIVE(U122(mark(X))) MARK(U23(X)) -> ACTIVE(U23(mark(X))) MARK(U33(X)) -> ACTIVE(U33(mark(X))) MARK(U52(X)) -> ACTIVE(U52(mark(X))) MARK(U96(X)) -> ACTIVE(U96(mark(X))) MARK(U71(X)) -> ACTIVE(U71(mark(X))) MARK(U81(X)) -> ACTIVE(U81(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = x_1 POL( U101_3(x_1, ..., x_3) ) = 2 POL( U102_3(x_1, ..., x_3) ) = 2 POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U106_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 0 POL( U13_1(x_1) ) = max{0, -2} POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U33_1(x_1) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U46_1(x_1) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = 2 POL( U71_1(x_1) ) = 0 POL( U81_1(x_1) ) = 0 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( U96_1(x_1) ) = 0 POL( cons_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( s_1(x_1) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 2 POL( active_1(x_1) ) = 2 POL( 0 ) = 0 POL( tt ) = 0 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) ---------------------------------------- (387) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> ACTIVE(U46(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> ACTIVE(U62(mark(X))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (388) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(cons(X1, X2)) -> ACTIVE(cons(mark(X1), X2)) MARK(U46(X)) -> ACTIVE(U46(mark(X))) MARK(U62(X)) -> ACTIVE(U62(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U101_3(x_1, ..., x_3) ) = 2 POL( U102_3(x_1, ..., x_3) ) = 2 POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U121_2(x_1, x_2) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U46_1(x_1) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 2 POL( s_1(x_1) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, 2x_1 - 1} POL( 0 ) = 2 POL( tt ) = 0 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 2 POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U122_1(x_1) ) = max{0, x_1 - 1} POL( U23_1(x_1) ) = 2x_1 + 2 POL( U33_1(x_1) ) = max{0, -2} POL( U52_1(x_1) ) = 1 POL( U96_1(x_1) ) = 2 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (389) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> ACTIVE(s(mark(X))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (390) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(s(X)) -> ACTIVE(s(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U101_3(x_1, ..., x_3) ) = 2 POL( U102_3(x_1, ..., x_3) ) = 2 POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U121_2(x_1, x_2) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( s_1(x_1) ) = 0 POL( take_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = 0 POL( zeros ) = 2 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( tt ) = 0 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 2 POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 2 POL( U122_1(x_1) ) = 2 POL( U23_1(x_1) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = 1 POL( U46_1(x_1) ) = 1 POL( U52_1(x_1) ) = 1 POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = 2x_1 + 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (391) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (392) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(take(0, IL)) -> MARK(U121(isNatIList(IL), IL)) MARK(U131(X1, X2, X3, X4)) -> MARK(X1) MARK(U132(X1, X2, X3, X4)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> MARK(X1) MARK(U134(X1, X2, X3, X4)) -> MARK(X1) MARK(U135(X1, X2, X3, X4)) -> MARK(X1) MARK(U136(X1, X2, X3, X4)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X1) MARK(take(X1, X2)) -> MARK(X2) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = x_1 POL(U102(x_1, x_2, x_3)) = x_1 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = x_1 + x_2 POL(U112(x_1, x_2, x_3)) = x_1 + x_2 POL(U113(x_1, x_2, x_3)) = x_1 + x_2 POL(U114(x_1, x_2)) = x_1 + x_2 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = x_1 POL(U122(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = 1 + x_1 + x_2 + x_3 + x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) ---------------------------------------- (393) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U121(X1, X2)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (394) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U121(tt, IL)) -> MARK(U122(isNatIListKind(IL))) MARK(U121(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = x_1 POL(U102(x_1, x_2, x_3)) = x_1 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = x_1 + x_2 POL(U112(x_1, x_2, x_3)) = x_1 + x_2 POL(U113(x_1, x_2, x_3)) = x_1 + x_2 POL(U114(x_1, x_2)) = x_1 + x_2 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 1 + x_1 POL(U122(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) ---------------------------------------- (395) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (396) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U121(X1, X2)) -> ACTIVE(U121(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = x_1 POL( U101_3(x_1, ..., x_3) ) = 2 POL( U102_3(x_1, ..., x_3) ) = 2 POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U121_2(x_1, x_2) ) = 0 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 2 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( tt ) = 0 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 1 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 2 POL( U122_1(x_1) ) = 1 POL( U23_1(x_1) ) = 2 POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = max{0, -2} POL( U52_1(x_1) ) = x_1 + 1 POL( U62_1(x_1) ) = x_1 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (397) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(length(X)) -> MARK(X) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (398) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U111(X1, X2, X3)) -> MARK(X1) MARK(U112(X1, X2, X3)) -> MARK(X1) MARK(U113(X1, X2, X3)) -> MARK(X1) MARK(U114(X1, X2)) -> MARK(X1) MARK(length(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = x_1 POL(U102(x_1, x_2, x_3)) = x_1 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = 1 + x_1 + x_2 POL(U112(x_1, x_2, x_3)) = 1 + x_1 + x_2 POL(U113(x_1, x_2, x_3)) = 1 + x_1 + x_2 POL(U114(x_1, x_2)) = 1 + x_1 + x_2 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 1 + x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) ---------------------------------------- (399) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (400) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U102(tt, V1, V2)) -> MARK(U103(isNatIListKind(V2), V1, V2)) MARK(U101(X1, X2, X3)) -> MARK(X1) MARK(U102(X1, X2, X3)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(U102(x_1, x_2, x_3)) = 1 + x_1 + x_2 + x_3 POL(U103(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U104(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U105(x_1, x_2)) = x_1 + x_2 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 + x_2 POL(U111(x_1, x_2, x_3)) = x_2 POL(U112(x_1, x_2, x_3)) = x_2 POL(U113(x_1, x_2, x_3)) = x_2 POL(U114(x_1, x_2)) = x_2 POL(U12(x_1, x_2)) = x_1 + x_2 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U21(x_1, x_2)) = x_1 + x_2 POL(U22(x_1, x_2)) = x_1 + x_2 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 + x_2 POL(U32(x_1, x_2)) = x_1 + x_2 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U42(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U43(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U44(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U45(x_1, x_2)) = x_1 + x_2 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U92(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U93(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U94(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U95(x_1, x_2)) = x_1 + x_2 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = x_1 POL(isNatIList(x_1)) = x_1 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = x_1 POL(length(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) ---------------------------------------- (401) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (402) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U102(X1, X2, X3)) -> ACTIVE(U102(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U101_3(x_1, ..., x_3) ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, -2} POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( 0 ) = 2 POL( tt ) = 0 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 1 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = x_1 + 2 POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U23_1(x_1) ) = max{0, -2} POL( U33_1(x_1) ) = max{0, -2} POL( U46_1(x_1) ) = 2 POL( U52_1(x_1) ) = 2 POL( U62_1(x_1) ) = max{0, x_1 - 2} POL( U96_1(x_1) ) = 2x_1 + 2 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = x_1 + 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (403) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U101(tt, V1, V2)) -> MARK(U102(isNatKind(V1), V1, V2)) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) MARK(cons(X1, X2)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U11(X1, X2)) -> MARK(X1) MARK(U106(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U31(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(s(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U13(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U122(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U23(X)) -> MARK(X) MARK(U32(X1, X2)) -> MARK(X1) MARK(U33(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U62(X)) -> MARK(X) MARK(U81(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) MARK(U96(X)) -> MARK(X) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (404) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (405) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (406) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U101(X1, X2, X3)) -> ACTIVE(U101(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U101_3(x_1, ..., x_3) ) = max{0, -2} POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( 0 ) = 2 POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = x_1 + 2 POL( U122_1(x_1) ) = max{0, -2} POL( U23_1(x_1) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = max{0, -2} POL( U52_1(x_1) ) = max{0, 2x_1 - 2} POL( U62_1(x_1) ) = 2x_1 + 1 POL( U96_1(x_1) ) = 2 POL( U71_1(x_1) ) = 2x_1 POL( U81_1(x_1) ) = 2x_1 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (407) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatList(take(V1, V2))) -> MARK(U101(isNatKind(V1), V1, V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (408) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (409) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (410) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(take(s(M), cons(N, IL))) -> MARK(U131(isNatIList(IL), IL, M, N)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) ---------------------------------------- (411) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (412) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(take(X1, X2)) -> ACTIVE(take(mark(X1), mark(X2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( take_2(x_1, x_2) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = x_2 + 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_3 - 2} POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = x_1 + 2 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, x_1 - 2} POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( U122_1(x_1) ) = max{0, x_1 - 2} POL( U23_1(x_1) ) = x_1 + 2 POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U46_1(x_1) ) = 2 POL( U52_1(x_1) ) = 0 POL( U62_1(x_1) ) = x_1 + 2 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = max{0, x_1 - 2} POL( nil ) = 1 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (413) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (414) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U131(tt, IL, M, N)) -> MARK(U132(isNatIListKind(IL), IL, M, N)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (415) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (416) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U131(X1, X2, X3, X4)) -> ACTIVE(U131(mark(X1), X2, X3, X4)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, -2} POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U122_1(x_1) ) = max{0, -2} POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = 2x_1 + 2 POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = 0 POL( U52_1(x_1) ) = max{0, -2} POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = x_1 POL( U71_1(x_1) ) = max{0, x_1 - 1} POL( U81_1(x_1) ) = max{0, -2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (417) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U122(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (418) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U122(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 1 POL(U122(x_1)) = 1 + x_1 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (419) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (420) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U136(tt, IL, M, N)) -> MARK(cons(N, take(M, IL))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = x_1 POL(U104(x_1, x_2, x_3)) = x_1 POL(U105(x_1, x_2)) = x_1 POL(U106(x_1)) = x_1 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = 1 + x_4 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_1 POL(U32(x_1, x_2)) = x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = x_1 POL(U42(x_1, x_2, x_3)) = x_1 POL(U43(x_1, x_2, x_3)) = x_1 POL(U44(x_1, x_2, x_3)) = x_1 POL(U45(x_1, x_2)) = x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (421) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (422) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U136(X1, X2, X3, X4)) -> ACTIVE(U136(mark(X1), X2, X3, X4)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2x_1 + 2 POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = 2 POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, x_1 - 2} POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = x_1 + 2x_2 + 2 POL( U122_1(x_1) ) = 1 POL( U131_4(x_1, ..., x_4) ) = x_1 + x_3 + 2x_4 + 2 POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = 0 POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = max{0, 2x_1 - 2} POL( U52_1(x_1) ) = 0 POL( U62_1(x_1) ) = 0 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = max{0, 2x_1 - 1} POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (423) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U135(tt, IL, M, N)) -> MARK(U136(isNatKind(N), IL, M, N)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (424) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (425) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (426) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U135(X1, X2, X3, X4)) -> ACTIVE(U135(mark(X1), X2, X3, X4)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U103_3(x_1, ..., x_3) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 0 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 0 POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = max{0, x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( isNatKind_1(x_1) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = 2 POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = x_2 + 2x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = 2x_2 + 2x_3 + x_4 + 2 POL( take_2(x_1, x_2) ) = 2x_1 + 2 POL( U23_1(x_1) ) = max{0, -2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = max{0, x_1 - 2} POL( U52_1(x_1) ) = 2 POL( U62_1(x_1) ) = 0 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = max{0, x_1 - 2} POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (427) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U134(tt, IL, M, N)) -> MARK(U135(isNat(N), IL, M, N)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (428) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (429) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (430) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U103(X1, X2, X3)) -> ACTIVE(U103(mark(X1), X2, X3)) MARK(U103(X1, X2, X3)) -> MARK(X1) MARK(U132(X1, X2, X3, X4)) -> ACTIVE(U132(mark(X1), X2, X3, X4)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 + x_3 + 2 POL( U104_3(x_1, ..., x_3) ) = 2x_1 POL( U105_2(x_1, x_2) ) = 2x_1 POL( U11_2(x_1, x_2) ) = 2x_1 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U12_2(x_1, x_2) ) = 2x_1 POL( U132_4(x_1, ..., x_4) ) = x_2 + x_3 + x_4 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, -2} POL( U134_4(x_1, ..., x_4) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2x_1 POL( U22_2(x_1, x_2) ) = 2x_1 POL( U31_2(x_1, x_2) ) = 2x_1 POL( U32_2(x_1, x_2) ) = 2x_1 POL( U41_3(x_1, ..., x_3) ) = 2x_1 POL( U42_3(x_1, ..., x_3) ) = 2x_1 POL( U43_3(x_1, ..., x_3) ) = 2x_1 POL( U44_3(x_1, ..., x_3) ) = x_1 POL( U45_2(x_1, x_2) ) = 2x_1 POL( U51_2(x_1, x_2) ) = 2x_1 POL( U61_2(x_1, x_2) ) = 2x_1 POL( U91_3(x_1, ..., x_3) ) = 2x_1 POL( U92_3(x_1, ..., x_3) ) = 2x_1 POL( U93_3(x_1, ..., x_3) ) = x_1 POL( U94_3(x_1, ..., x_3) ) = x_1 POL( U95_2(x_1, x_2) ) = 2x_1 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_1 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 + 2x_3 + 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( isNatIListKind_1(x_1) ) = 0 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = x_1 POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = x_1 POL( U13_1(x_1) ) = x_1 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_1 + x_2 + x_3 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = x_1 POL( U33_1(x_1) ) = x_1 POL( U46_1(x_1) ) = 2x_1 POL( U52_1(x_1) ) = x_1 POL( U62_1(x_1) ) = x_1 POL( U96_1(x_1) ) = x_1 POL( U71_1(x_1) ) = x_1 POL( U81_1(x_1) ) = x_1 POL( nil ) = 0 POL( MARK_1(x_1) ) = x_1 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (431) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (432) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U103(tt, V1, V2)) -> MARK(U104(isNatIListKind(V2), V1, V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 2} POL( U104_3(x_1, ..., x_3) ) = max{0, -2} POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U12_2(x_1, x_2) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = 0 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 - 1} POL( tt ) = 1 POL( U102_3(x_1, ..., x_3) ) = 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2x_1 + x_2 + x_3 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = 0 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( U132_4(x_1, ..., x_4) ) = 2x_2 + x_3 + 2x_4 + 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U23_1(x_1) ) = 1 POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = 2 POL( U52_1(x_1) ) = 2 POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = 1 POL( U81_1(x_1) ) = max{0, 2x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (433) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (434) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U104(X1, X2, X3)) -> ACTIVE(U104(mark(X1), X2, X3)) MARK(U104(X1, X2, X3)) -> MARK(X1) MARK(zeros) -> ACTIVE(zeros) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U104_3(x_1, ..., x_3) ) = 2x_1 + x_2 + x_3 + 2 POL( U105_2(x_1, x_2) ) = 2x_1 + 1 POL( U11_2(x_1, x_2) ) = 2x_1 + 1 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U113_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U12_2(x_1, x_2) ) = 2x_1 + 1 POL( U133_4(x_1, ..., x_4) ) = max{0, -2} POL( U134_4(x_1, ..., x_4) ) = x_1 + 1 POL( U21_2(x_1, x_2) ) = 2x_1 + 1 POL( U22_2(x_1, x_2) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = 2x_1 + 1 POL( U32_2(x_1, x_2) ) = 2x_1 + 1 POL( U41_3(x_1, ..., x_3) ) = x_1 + 1 POL( U42_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U43_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U44_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U45_2(x_1, x_2) ) = x_1 + 1 POL( U51_2(x_1, x_2) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = 2x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U92_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U93_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U94_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U95_2(x_1, x_2) ) = 2x_1 + 1 POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = max{0, x_1 - 2} POL( zeros ) = 2 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = 2x_1 + 1 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2 POL( isNatIListKind_1(x_1) ) = 0 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2x_1 + 1 POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2x_1 + 1 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = max{0, -2} POL( U131_4(x_1, ..., x_4) ) = 2x_1 + x_3 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 + x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = x_2 + 2 POL( take_2(x_1, x_2) ) = 2x_2 + 2 POL( U23_1(x_1) ) = x_1 + 1 POL( U33_1(x_1) ) = x_1 + 1 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U52_1(x_1) ) = x_1 + 1 POL( U62_1(x_1) ) = 2x_1 + 1 POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = x_1 + 1 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (435) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(zeros) -> MARK(cons(0, zeros)) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (436) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (437) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (438) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U104(tt, V1, V2)) -> MARK(U105(isNat(V1), V2)) ACTIVE(U132(tt, IL, M, N)) -> MARK(U133(isNat(M), IL, M, N)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 2} POL( U105_2(x_1, x_2) ) = 2 POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U12_2(x_1, x_2) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U32_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = 1 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 0 POL( U51_2(x_1, x_2) ) = 0 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2x_1 + x_2 + x_3 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, x_1 - 2} POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = max{0, x_1 - 2} POL( U13_1(x_1) ) = max{0, x_1 - 2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U132_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_3 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, x_2 + x_3 + x_4 - 2} POL( take_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U23_1(x_1) ) = 2 POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = 0 POL( U52_1(x_1) ) = max{0, 2x_1 - 2} POL( U62_1(x_1) ) = max{0, x_1 - 2} POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (439) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(cons(X1, X2)) -> MARK(X1) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(U105(X1, X2)) -> MARK(X1) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (440) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(cons(X1, X2)) -> MARK(X1) MARK(U105(X1, X2)) -> ACTIVE(U105(mark(X1), X2)) MARK(U105(X1, X2)) -> MARK(X1) MARK(U133(X1, X2, X3, X4)) -> ACTIVE(U133(mark(X1), X2, X3, X4)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U105_2(x_1, x_2) ) = 2x_1 + 2 POL( U11_2(x_1, x_2) ) = 2x_1 + 1 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 0 POL( U12_2(x_1, x_2) ) = 2x_1 + 1 POL( U133_4(x_1, ..., x_4) ) = x_2 + 2x_3 + x_4 + 2 POL( U134_4(x_1, ..., x_4) ) = 1 POL( U21_2(x_1, x_2) ) = 2x_1 + 1 POL( U22_2(x_1, x_2) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = 2x_1 + 1 POL( U32_2(x_1, x_2) ) = 2x_1 + 1 POL( U41_3(x_1, ..., x_3) ) = x_1 + 1 POL( U42_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U43_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U44_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U45_2(x_1, x_2) ) = 2x_1 + 1 POL( U51_2(x_1, x_2) ) = x_1 + 1 POL( U61_2(x_1, x_2) ) = 2x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U92_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U93_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U94_3(x_1, ..., x_3) ) = x_1 + 1 POL( U95_2(x_1, x_2) ) = 2x_1 + 1 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( zeros ) = 0 POL( active_1(x_1) ) = 1 POL( cons_2(x_1, x_2) ) = x_1 + 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = x_2 + x_3 + 1 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = x_1 + 1 POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2x_1 + 1 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U122_1(x_1) ) = max{0, -2} POL( U131_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( take_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U23_1(x_1) ) = 2x_1 + 1 POL( U33_1(x_1) ) = 2x_1 + 1 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U62_1(x_1) ) = 2x_1 + 1 POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = x_1 + 1 POL( U81_1(x_1) ) = x_1 + 1 POL( nil ) = 2 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (441) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) MARK(U106(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (442) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U105(tt, V2)) -> MARK(U106(isNatIList(V2))) ACTIVE(U133(tt, IL, M, N)) -> MARK(U134(isNatKind(M), IL, M, N)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U11_2(x_1, x_2) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = 1 POL( U112_3(x_1, ..., x_3) ) = 1 POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U12_2(x_1, x_2) ) = max{0, -2} POL( U134_4(x_1, ..., x_4) ) = 0 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = 0 POL( U32_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = 0 POL( U42_3(x_1, ..., x_3) ) = 1 POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = 0 POL( U61_2(x_1, x_2) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = 1 POL( U93_3(x_1, ..., x_3) ) = 0 POL( U94_3(x_1, ..., x_3) ) = 1 POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 1 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( 0 ) = 1 POL( U101_3(x_1, ..., x_3) ) = 2 POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = x_1 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatIList_1(x_1) ) = 1 POL( s_1(x_1) ) = x_1 POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_1 - 2} POL( U133_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_3 - 2} POL( take_2(x_1, x_2) ) = 2x_1 + x_2 + 1 POL( U23_1(x_1) ) = 2 POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U46_1(x_1) ) = 2 POL( U52_1(x_1) ) = max{0, -2} POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = 2x_1 + 2 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = max{0, 2x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (443) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U106(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (444) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U134(X1, X2, X3, X4)) -> ACTIVE(U134(mark(X1), X2, X3, X4)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U134_4(x_1, ..., x_4) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = x_1 + x_2 + x_3 + 1 POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( U104_3(x_1, ..., x_3) ) = x_2 + x_3 + 2 POL( U105_2(x_1, x_2) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = x_1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = x_1 POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = x_1 + x_2 + x_3 + x_4 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U133_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = x_1 + 2 POL( take_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U23_1(x_1) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U46_1(x_1) ) = max{0, -2} POL( U52_1(x_1) ) = max{0, -2} POL( U62_1(x_1) ) = 1 POL( U96_1(x_1) ) = max{0, 2x_1 - 2} POL( U71_1(x_1) ) = max{0, x_1 - 1} POL( U81_1(x_1) ) = max{0, -2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (445) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U106(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (446) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U106(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U11_2(x_1, x_2) ) = x_1 + 1 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 1 POL( U114_2(x_1, x_2) ) = 0 POL( U12_2(x_1, x_2) ) = 2x_1 + 1 POL( U21_2(x_1, x_2) ) = x_1 + 1 POL( U22_2(x_1, x_2) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = 2x_1 + 1 POL( U32_2(x_1, x_2) ) = 2x_1 + 1 POL( U41_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U42_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U43_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U44_3(x_1, ..., x_3) ) = x_1 + 1 POL( U45_2(x_1, x_2) ) = 2x_1 + 1 POL( U51_2(x_1, x_2) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U92_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U93_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U94_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U95_2(x_1, x_2) ) = 2x_1 + 1 POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = 2 POL( zeros ) = 1 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = x_1 + x_2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U105_2(x_1, x_2) ) = 1 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2x_1 + 2 POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = 2x_1 + 1 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = x_1 + x_2 POL( U122_1(x_1) ) = x_1 + 1 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U133_4(x_1, ..., x_4) ) = x_1 + 2 POL( U134_4(x_1, ..., x_4) ) = x_4 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = x_1 + 1 POL( U33_1(x_1) ) = 2x_1 + 1 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U62_1(x_1) ) = x_1 + 1 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = x_1 + 1 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (447) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (448) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U32(tt, V)) -> MARK(U33(isNatList(V))) MARK(U31(X1, X2)) -> MARK(X1) MARK(U32(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> MARK(X1) MARK(U42(X1, X2, X3)) -> MARK(X1) MARK(U43(X1, X2, X3)) -> MARK(X1) MARK(U44(X1, X2, X3)) -> MARK(X1) MARK(U45(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = 0 POL(U104(x_1, x_2, x_3)) = 0 POL(U105(x_1, x_2)) = 0 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = x_1 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = x_1 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = 0 POL(U132(x_1, x_2, x_3, x_4)) = 0 POL(U133(x_1, x_2, x_3, x_4)) = 0 POL(U134(x_1, x_2, x_3, x_4)) = 0 POL(U135(x_1, x_2, x_3, x_4)) = 0 POL(U136(x_1, x_2, x_3, x_4)) = 0 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = 1 + x_1 POL(U32(x_1, x_2)) = 1 + x_1 POL(U33(x_1)) = x_1 POL(U41(x_1, x_2, x_3)) = 1 + x_1 POL(U42(x_1, x_2, x_3)) = 1 + x_1 POL(U43(x_1, x_2, x_3)) = 1 + x_1 POL(U44(x_1, x_2, x_3)) = 1 + x_1 POL(U45(x_1, x_2)) = 1 + x_1 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 POL(U92(x_1, x_2, x_3)) = x_1 POL(U93(x_1, x_2, x_3)) = x_1 POL(U94(x_1, x_2, x_3)) = x_1 POL(U95(x_1, x_2)) = x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 1 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 0 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (449) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) MARK(U33(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (450) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U33(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2x_1 + 1 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 0 POL( U12_2(x_1, x_2) ) = 2x_1 + 1 POL( U21_2(x_1, x_2) ) = 2x_1 + 1 POL( U22_2(x_1, x_2) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U32_2(x_1, x_2) ) = 0 POL( U41_3(x_1, ..., x_3) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = 0 POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = 2x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U92_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U93_3(x_1, ..., x_3) ) = x_1 + 1 POL( U94_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U95_2(x_1, x_2) ) = 2x_1 + 1 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( zeros ) = 1 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = 2x_1 + 1 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_1 + x_3 - 2} POL( U132_4(x_1, ..., x_4) ) = x_2 + 2x_3 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 - 2} POL( U134_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_1 + x_2 - 2} POL( take_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U23_1(x_1) ) = x_1 + 1 POL( U33_1(x_1) ) = x_1 + 2 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U52_1(x_1) ) = x_1 + 1 POL( U62_1(x_1) ) = x_1 + 1 POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = 2x_1 + 1 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (451) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (452) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U32(X1, X2)) -> ACTIVE(U32(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 1} POL( U11_2(x_1, x_2) ) = 1 POL( U111_3(x_1, ..., x_3) ) = 1 POL( U112_3(x_1, ..., x_3) ) = 1 POL( U113_3(x_1, ..., x_3) ) = 1 POL( U114_2(x_1, x_2) ) = 1 POL( U12_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = 1 POL( U22_2(x_1, x_2) ) = 1 POL( U31_2(x_1, x_2) ) = 1 POL( U32_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = 1 POL( U42_3(x_1, ..., x_3) ) = 1 POL( U43_3(x_1, ..., x_3) ) = 1 POL( U44_3(x_1, ..., x_3) ) = 1 POL( U45_2(x_1, x_2) ) = 1 POL( U51_2(x_1, x_2) ) = 1 POL( U61_2(x_1, x_2) ) = 1 POL( U91_3(x_1, ..., x_3) ) = 1 POL( U92_3(x_1, ..., x_3) ) = 1 POL( U93_3(x_1, ..., x_3) ) = 1 POL( U94_3(x_1, ..., x_3) ) = 1 POL( U95_2(x_1, x_2) ) = 1 POL( length_1(x_1) ) = 1 POL( mark_1(x_1) ) = 2 POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 1 POL( U103_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 + 2 POL( isNatIListKind_1(x_1) ) = 1 POL( U104_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = 2 POL( isNat_1(x_1) ) = 1 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 1 POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 1 POL( U121_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U122_1(x_1) ) = x_1 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( U132_4(x_1, ..., x_4) ) = 2x_2 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_3 + x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_2 + x_3 + x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U23_1(x_1) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U46_1(x_1) ) = max{0, -2} POL( U52_1(x_1) ) = max{0, x_1 - 2} POL( U62_1(x_1) ) = x_1 + 2 POL( U96_1(x_1) ) = max{0, x_1 - 2} POL( U71_1(x_1) ) = max{0, x_1 - 2} POL( U81_1(x_1) ) = max{0, 2x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (453) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U31(tt, V)) -> MARK(U32(isNatIListKind(V), V)) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (454) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (455) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (456) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U31(X1, X2)) -> ACTIVE(U31(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U31_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( isNatIListKind_1(x_1) ) = 2 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = max{0, x_1 - 2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = 1 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = x_1 + 2x_2 + 2x_3 + x_4 + 1 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 - 2} POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = max{0, -2} POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = x_1 + 1 POL( U46_1(x_1) ) = max{0, x_1 - 2} POL( U52_1(x_1) ) = max{0, -2} POL( U62_1(x_1) ) = 0 POL( U96_1(x_1) ) = 0 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = max{0, -2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (457) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(V)) -> MARK(U31(isNatIListKind(V), V)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (458) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (459) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (460) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U12(tt, V1)) -> MARK(U13(isNatList(V1))) MARK(U11(X1, X2)) -> MARK(X1) MARK(U12(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = x_3 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = 0 POL(U104(x_1, x_2, x_3)) = 0 POL(U105(x_1, x_2)) = 0 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 1 + x_1 + x_2 POL(U111(x_1, x_2, x_3)) = 1 + x_2 POL(U112(x_1, x_2, x_3)) = 1 + x_2 POL(U113(x_1, x_2, x_3)) = 1 + x_2 POL(U114(x_1, x_2)) = 1 + x_2 POL(U12(x_1, x_2)) = 1 + x_1 + x_2 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = x_1 POL(U131(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U21(x_1, x_2)) = x_1 + x_2 POL(U22(x_1, x_2)) = x_1 + x_2 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = 0 POL(U32(x_1, x_2)) = 0 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = 0 POL(U42(x_1, x_2, x_3)) = 0 POL(U43(x_1, x_2, x_3)) = 0 POL(U44(x_1, x_2, x_3)) = 0 POL(U45(x_1, x_2)) = 0 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U92(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U93(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U94(x_1, x_2, x_3)) = x_1 + x_2 + x_3 POL(U95(x_1, x_2)) = x_1 + x_2 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = x_1 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = x_1 POL(length(x_1)) = 1 + x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (461) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(U13(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (462) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U13(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U11_2(x_1, x_2) ) = 1 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U12_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2x_1 + 1 POL( U22_2(x_1, x_2) ) = 2x_1 + 1 POL( U41_3(x_1, ..., x_3) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 1 POL( U51_2(x_1, x_2) ) = x_1 + 1 POL( U61_2(x_1, x_2) ) = 2x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U92_3(x_1, ..., x_3) ) = x_1 + 1 POL( U93_3(x_1, ..., x_3) ) = x_1 + 1 POL( U94_3(x_1, ..., x_3) ) = x_1 + 1 POL( U95_2(x_1, x_2) ) = 2x_1 + 1 POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = 0 POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = x_3 + 2 POL( tt ) = 1 POL( U102_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 2 POL( U105_2(x_1, x_2) ) = x_2 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 0 POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = 2x_1 + 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_2 + x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = x_2 + x_3 + 2 POL( U134_4(x_1, ..., x_4) ) = x_2 + 2x_3 + 2 POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( take_2(x_1, x_2) ) = x_1 + x_2 + 2 POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 1} POL( U32_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U62_1(x_1) ) = 2x_1 + 1 POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = 2x_1 + 1 POL( U81_1(x_1) ) = x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (463) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (464) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U12(X1, X2)) -> ACTIVE(U12(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U11_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_2 + 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = x_2 + 2 POL( isNatIListKind_1(x_1) ) = 2 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( U105_2(x_1, x_2) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 2 POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U132_4(x_1, ..., x_4) ) = x_1 + 2x_2 + 2x_3 + x_4 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 + x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = x_3 + 2 POL( U136_4(x_1, ..., x_4) ) = x_1 + x_2 + 2x_3 + 2 POL( take_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U23_1(x_1) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = 2 POL( U52_1(x_1) ) = max{0, -2} POL( U62_1(x_1) ) = max{0, -2} POL( U96_1(x_1) ) = 0 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = max{0, x_1 - 2} POL( nil ) = 2 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (465) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U11(tt, V1)) -> MARK(U12(isNatIListKind(V1), V1)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (466) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (467) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (468) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U11(X1, X2)) -> ACTIVE(U11(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U11_2(x_1, x_2) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatIListKind_1(x_1) ) = 2 POL( U104_3(x_1, ..., x_3) ) = x_1 + 2x_2 + 2 POL( U105_2(x_1, x_2) ) = 2x_1 + 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, x_1 - 1} POL( s_1(x_1) ) = max{0, x_1 - 2} POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = x_1 + 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, x_3 + x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U23_1(x_1) ) = max{0, x_1 - 2} POL( U31_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = max{0, 2x_1 - 2} POL( U52_1(x_1) ) = max{0, x_1 - 2} POL( U62_1(x_1) ) = max{0, x_1 - 2} POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = 2x_1 + 2 POL( U81_1(x_1) ) = max{0, x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) ---------------------------------------- (469) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(length(V1))) -> MARK(U11(isNatIListKind(V1), V1)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U81(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (470) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (471) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (472) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U91(X1, X2, X3)) -> MARK(X1) MARK(U92(X1, X2, X3)) -> MARK(X1) MARK(U93(X1, X2, X3)) -> MARK(X1) MARK(U94(X1, X2, X3)) -> MARK(X1) MARK(U95(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = 0 POL(U104(x_1, x_2, x_3)) = 0 POL(U105(x_1, x_2)) = 0 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = 0 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = 0 POL(U131(x_1, x_2, x_3, x_4)) = 0 POL(U132(x_1, x_2, x_3, x_4)) = 0 POL(U133(x_1, x_2, x_3, x_4)) = 0 POL(U134(x_1, x_2, x_3, x_4)) = 0 POL(U135(x_1, x_2, x_3, x_4)) = 0 POL(U136(x_1, x_2, x_3, x_4)) = 0 POL(U21(x_1, x_2)) = x_1 POL(U22(x_1, x_2)) = x_1 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = 0 POL(U32(x_1, x_2)) = 0 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = 0 POL(U42(x_1, x_2, x_3)) = 0 POL(U43(x_1, x_2, x_3)) = 0 POL(U44(x_1, x_2, x_3)) = 0 POL(U45(x_1, x_2)) = 0 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = 1 + x_1 POL(U92(x_1, x_2, x_3)) = 1 + x_1 POL(U93(x_1, x_2, x_3)) = 1 + x_1 POL(U94(x_1, x_2, x_3)) = 1 + x_1 POL(U95(x_1, x_2)) = 1 + x_1 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 1 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 0 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (473) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (474) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U21(X1, X2)) -> MARK(X1) MARK(U22(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = x_1 + 2 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = 0 POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 2x_1 + 1 POL( U22_2(x_1, x_2) ) = 2x_1 + 1 POL( U41_3(x_1, ..., x_3) ) = 2x_3 + 1 POL( U42_3(x_1, ..., x_3) ) = 2x_3 + 1 POL( U43_3(x_1, ..., x_3) ) = 2x_3 + 1 POL( U44_3(x_1, ..., x_3) ) = x_1 + 2x_3 + 1 POL( U45_2(x_1, x_2) ) = x_2 + 1 POL( U51_2(x_1, x_2) ) = 2x_1 POL( U61_2(x_1, x_2) ) = x_1 POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = x_1 POL( zeros ) = 0 POL( active_1(x_1) ) = x_1 POL( cons_2(x_1, x_2) ) = 2x_2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, -2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, -2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, -2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, -2} POL( U105_2(x_1, x_2) ) = max{0, -2} POL( isNat_1(x_1) ) = 1 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = x_1 + 1 POL( U11_2(x_1, x_2) ) = 2x_1 + 1 POL( U12_2(x_1, x_2) ) = max{0, -2} POL( s_1(x_1) ) = x_1 POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, -2} POL( U122_1(x_1) ) = max{0, -2} POL( U131_4(x_1, ..., x_4) ) = max{0, -2} POL( U132_4(x_1, ..., x_4) ) = max{0, -2} POL( U133_4(x_1, ..., x_4) ) = max{0, -2} POL( U134_4(x_1, ..., x_4) ) = max{0, -2} POL( U135_4(x_1, ..., x_4) ) = max{0, -2} POL( U136_4(x_1, ..., x_4) ) = max{0, -2} POL( take_2(x_1, x_2) ) = 0 POL( U23_1(x_1) ) = x_1 POL( U31_2(x_1, x_2) ) = 1 POL( U32_2(x_1, x_2) ) = max{0, -2} POL( U33_1(x_1) ) = max{0, -2} POL( U46_1(x_1) ) = x_1 POL( U52_1(x_1) ) = x_1 POL( U62_1(x_1) ) = 2x_1 POL( U96_1(x_1) ) = x_1 POL( U71_1(x_1) ) = 2x_1 POL( U81_1(x_1) ) = x_1 POL( nil ) = 0 POL( MARK_1(x_1) ) = x_1 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (475) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (476) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(isNatIListKind(take(V1, V2))) -> MARK(U61(isNatKind(V1), V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = 0 POL(U104(x_1, x_2, x_3)) = 0 POL(U105(x_1, x_2)) = 0 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U111(x_1, x_2, x_3)) = x_2 POL(U112(x_1, x_2, x_3)) = x_2 POL(U113(x_1, x_2, x_3)) = x_2 POL(U114(x_1, x_2)) = x_2 POL(U12(x_1, x_2)) = 0 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = 0 POL(U131(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = 1 + x_2 + x_3 + x_4 POL(U21(x_1, x_2)) = 0 POL(U22(x_1, x_2)) = 0 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = 0 POL(U32(x_1, x_2)) = 0 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = 0 POL(U42(x_1, x_2, x_3)) = 0 POL(U43(x_1, x_2, x_3)) = 0 POL(U44(x_1, x_2, x_3)) = 0 POL(U45(x_1, x_2)) = 0 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 + x_2 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_1 + x_2 POL(U62(x_1)) = x_1 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = 0 POL(U92(x_1, x_2, x_3)) = 0 POL(U93(x_1, x_2, x_3)) = 0 POL(U94(x_1, x_2, x_3)) = 0 POL(U95(x_1, x_2)) = 0 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = x_1 POL(isNatKind(x_1)) = x_1 POL(isNatList(x_1)) = 0 POL(length(x_1)) = x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 1 + x_1 + x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (477) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U61(X1, X2)) -> MARK(X1) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (478) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U61(X1, X2)) -> ACTIVE(U61(mark(X1), X2)) MARK(U61(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = 0 POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = 0 POL( U42_3(x_1, ..., x_3) ) = 1 POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = 1 POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, -2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2 POL( U105_2(x_1, x_2) ) = 2x_2 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = x_2 POL( U122_1(x_1) ) = x_1 + 2 POL( U131_4(x_1, ..., x_4) ) = 2x_3 + 2x_4 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_2 + 2x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2x_2 + 2x_3 + 2 POL( U135_4(x_1, ..., x_4) ) = x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = x_1 + x_2 + 2 POL( take_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U62_1(x_1) ) = x_1 + 1 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = x_1 + 1 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (479) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (480) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U61(tt, V2)) -> MARK(U62(isNatIListKind(V2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 0 POL( U114_2(x_1, x_2) ) = 0 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = 0 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = 0 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( tt ) = 1 POL( U102_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2x_2 + x_3 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2x_1 + 2x_2 + 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 2 POL( U11_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_2 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = 2x_2 + 2 POL( U133_4(x_1, ..., x_4) ) = 2x_1 + 2x_4 + 2 POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 + x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U23_1(x_1) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = max{0, x_1 - 1} POL( U52_1(x_1) ) = max{0, 2x_1 - 2} POL( U61_2(x_1, x_2) ) = 2x_1 + 2 POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = max{0, 2x_1 - 2} POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = max{0, x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (481) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U62(X)) -> MARK(X) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (482) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U62(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = 0 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 0 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 1 POL( U51_2(x_1, x_2) ) = x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = 1 POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = max{0, x_1 - 2} POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U105_2(x_1, x_2) ) = 2x_2 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, x_1 - 2} POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U135_4(x_1, ..., x_4) ) = x_1 + 2x_2 + 2 POL( U136_4(x_1, ..., x_4) ) = 2x_3 + 2x_4 + 2 POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U32_2(x_1, x_2) ) = 2 POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U62_1(x_1) ) = 2x_1 + 2 POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = 2x_1 + 1 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (483) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (484) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(isNatKind(length(V1))) -> MARK(U71(isNatIListKind(V1))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = 0 POL(U104(x_1, x_2, x_3)) = 0 POL(U105(x_1, x_2)) = 0 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U111(x_1, x_2, x_3)) = 1 + x_2 POL(U112(x_1, x_2, x_3)) = 1 + x_2 POL(U113(x_1, x_2, x_3)) = 1 + x_2 POL(U114(x_1, x_2)) = 1 + x_2 POL(U12(x_1, x_2)) = 0 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = 0 POL(U131(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_2 + x_4 POL(U21(x_1, x_2)) = 0 POL(U22(x_1, x_2)) = 0 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = 0 POL(U32(x_1, x_2)) = 0 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = 0 POL(U42(x_1, x_2, x_3)) = 0 POL(U43(x_1, x_2, x_3)) = 0 POL(U44(x_1, x_2, x_3)) = 0 POL(U45(x_1, x_2)) = 0 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = x_1 + x_2 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_2 POL(U62(x_1)) = 0 POL(U71(x_1)) = x_1 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = 0 POL(U92(x_1, x_2, x_3)) = 0 POL(U93(x_1, x_2, x_3)) = 0 POL(U94(x_1, x_2, x_3)) = 0 POL(U95(x_1, x_2)) = 0 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = x_1 + x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = x_1 POL(isNatKind(x_1)) = x_1 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 1 + x_1 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = x_2 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (485) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U71(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (486) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U71(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 1 POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = 1 POL( U42_3(x_1, ..., x_3) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = 1 POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 0 POL( U51_2(x_1, x_2) ) = x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = 1 POL( U92_3(x_1, ..., x_3) ) = 0 POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = 0 POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 1} POL( tt ) = 1 POL( U102_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = max{0, x_1 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = x_1 + 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_3 + x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = x_1 + 2x_2 + 2x_3 + x_4 + 2 POL( U135_4(x_1, ..., x_4) ) = 2x_1 + x_3 + x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = 2x_2 + x_3 + 2x_4 + 2 POL( take_2(x_1, x_2) ) = 2x_1 + 2 POL( U23_1(x_1) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U46_1(x_1) ) = x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = x_1 + 2 POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = 2x_1 + 2 POL( U81_1(x_1) ) = x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, 2x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (487) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U51(X1, X2)) -> MARK(X1) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (488) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U51(X1, X2)) -> MARK(X1) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = 0 POL(U102(x_1, x_2, x_3)) = 0 POL(U103(x_1, x_2, x_3)) = 0 POL(U104(x_1, x_2, x_3)) = 0 POL(U105(x_1, x_2)) = 0 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = 0 POL(U121(x_1, x_2)) = 0 POL(U122(x_1)) = 0 POL(U13(x_1)) = 0 POL(U131(x_1, x_2, x_3, x_4)) = 0 POL(U132(x_1, x_2, x_3, x_4)) = 0 POL(U133(x_1, x_2, x_3, x_4)) = 0 POL(U134(x_1, x_2, x_3, x_4)) = 0 POL(U135(x_1, x_2, x_3, x_4)) = 0 POL(U136(x_1, x_2, x_3, x_4)) = 0 POL(U21(x_1, x_2)) = 0 POL(U22(x_1, x_2)) = 0 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = 0 POL(U32(x_1, x_2)) = 0 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = 0 POL(U42(x_1, x_2, x_3)) = 0 POL(U43(x_1, x_2, x_3)) = 0 POL(U44(x_1, x_2, x_3)) = 0 POL(U45(x_1, x_2)) = 0 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = 1 + x_1 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = 0 POL(U62(x_1)) = 0 POL(U71(x_1)) = 0 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = 0 POL(U92(x_1, x_2, x_3)) = 0 POL(U93(x_1, x_2, x_3)) = 0 POL(U94(x_1, x_2, x_3)) = 0 POL(U95(x_1, x_2)) = 0 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 1 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 0 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (489) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (490) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(isNatIListKind(cons(V1, V2))) -> MARK(U51(isNatKind(V1), V2)) ACTIVE(isNatIList(cons(V1, V2))) -> MARK(U41(isNatKind(V1), V1, V2)) ACTIVE(isNatList(cons(V1, V2))) -> MARK(U91(isNatKind(V1), V1, V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = x_3 POL(U102(x_1, x_2, x_3)) = x_2 + x_3 POL(U103(x_1, x_2, x_3)) = x_2 + x_3 POL(U104(x_1, x_2, x_3)) = x_2 + x_3 POL(U105(x_1, x_2)) = x_2 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U111(x_1, x_2, x_3)) = 0 POL(U112(x_1, x_2, x_3)) = 0 POL(U113(x_1, x_2, x_3)) = 0 POL(U114(x_1, x_2)) = 0 POL(U12(x_1, x_2)) = x_2 POL(U121(x_1, x_2)) = x_2 POL(U122(x_1)) = 0 POL(U13(x_1)) = 0 POL(U131(x_1, x_2, x_3, x_4)) = x_3 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U21(x_1, x_2)) = 0 POL(U22(x_1, x_2)) = 0 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_2 POL(U32(x_1, x_2)) = x_2 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = 1 + x_3 POL(U42(x_1, x_2, x_3)) = 1 + x_3 POL(U43(x_1, x_2, x_3)) = 1 + x_3 POL(U44(x_1, x_2, x_3)) = 1 + x_3 POL(U45(x_1, x_2)) = 1 + x_2 POL(U46(x_1)) = x_1 POL(U51(x_1, x_2)) = 1 + x_2 POL(U52(x_1)) = x_1 POL(U61(x_1, x_2)) = x_2 POL(U62(x_1)) = 0 POL(U71(x_1)) = 0 POL(U81(x_1)) = x_1 POL(U91(x_1, x_2, x_3)) = 1 + x_3 POL(U92(x_1, x_2, x_3)) = 1 + x_3 POL(U93(x_1, x_2, x_3)) = 1 + x_3 POL(U94(x_1, x_2, x_3)) = 1 + x_3 POL(U95(x_1, x_2)) = 1 + x_2 POL(U96(x_1)) = x_1 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = 1 + x_2 POL(isNat(x_1)) = 0 POL(isNatIList(x_1)) = 1 + x_1 POL(isNatIListKind(x_1)) = 1 + x_1 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 1 + x_1 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = x_1 POL(take(x_1, x_2)) = 0 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) length(active(X)) -> length(X) length(mark(X)) -> length(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (491) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatIListKind(X)) -> ACTIVE(isNatIListKind(X)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(isNatIList(X)) -> ACTIVE(isNatIList(X)) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(isNatList(X)) -> ACTIVE(isNatList(X)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (492) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 3 less nodes. ---------------------------------------- (493) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (494) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U41(X1, X2, X3)) -> ACTIVE(U41(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 0 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = x_3 + 2 POL( U42_3(x_1, ..., x_3) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = 1 POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 1 POL( U51_2(x_1, x_2) ) = 0 POL( U91_3(x_1, ..., x_3) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = 0 POL( U94_3(x_1, ..., x_3) ) = 1 POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2x_1 + x_2 + x_3 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = x_3 POL( U105_2(x_1, x_2) ) = x_2 + 1 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, x_1 - 2} POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2x_1 + 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2x_1 + 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( U134_4(x_1, ..., x_4) ) = x_1 + x_2 + 2 POL( U135_4(x_1, ..., x_4) ) = 2x_2 + 2 POL( U136_4(x_1, ..., x_4) ) = x_1 + 2 POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U32_2(x_1, x_2) ) = 2 POL( U33_1(x_1) ) = max{0, -2} POL( U46_1(x_1) ) = x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = x_1 + 2 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = 0 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (495) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (496) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U41(tt, V1, V2)) -> MARK(U42(isNatKind(V1), V1, V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = 0 POL( U45_2(x_1, x_2) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = 0 POL( U95_2(x_1, x_2) ) = 0 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = x_3 + 2 POL( U105_2(x_1, x_2) ) = x_1 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2x_2 + 2 POL( U12_2(x_1, x_2) ) = max{0, x_1 - 2} POL( s_1(x_1) ) = 2 POL( U13_1(x_1) ) = 1 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, x_3 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U133_4(x_1, ..., x_4) ) = 2x_1 + 2x_2 + 2x_3 + x_4 + 2 POL( U134_4(x_1, ..., x_4) ) = 2 POL( U135_4(x_1, ..., x_4) ) = 2x_1 + x_2 + 2x_3 + 2 POL( U136_4(x_1, ..., x_4) ) = x_1 + x_2 + 2x_4 + 2 POL( take_2(x_1, x_2) ) = x_1 + 1 POL( U23_1(x_1) ) = 2 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + x_3 - 1} POL( U46_1(x_1) ) = max{0, 2x_1 - 2} POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = x_1 POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = 0 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = max{0, x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) ---------------------------------------- (497) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (498) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U42(X1, X2, X3)) -> ACTIVE(U42(mark(X1), X2, X3)) MARK(U51(X1, X2)) -> ACTIVE(U51(mark(X1), X2)) MARK(U91(X1, X2, X3)) -> ACTIVE(U91(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U42_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2x_3 + 2 POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2x_1 + x_2 + x_3 + 2 POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = 1 POL( U94_3(x_1, ..., x_3) ) = 0 POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2x_1 + x_3 + 2 POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, x_1 + x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2x_1 + 2x_3 + 2 POL( U105_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = x_1 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, x_2 - 2} POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2x_3 + 2x_4 + 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = x_3 + 2 POL( U135_4(x_1, ..., x_4) ) = x_1 + 2x_2 + x_3 + x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = max{0, x_3 + x_4 - 2} POL( take_2(x_1, x_2) ) = x_2 + 2 POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U46_1(x_1) ) = x_1 + 1 POL( U52_1(x_1) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = 2x_1 + 2 POL( U62_1(x_1) ) = 2 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, 2x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (499) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (500) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U42(tt, V1, V2)) -> MARK(U43(isNatIListKind(V2), V1, V2)) ACTIVE(U91(tt, V1, V2)) -> MARK(U92(isNatKind(V1), V1, V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 1 POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = 0 POL( U43_3(x_1, ..., x_3) ) = 0 POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, 2x_1 - 1} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( isNatIListKind_1(x_1) ) = x_1 + 2 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2x_1 POL( isNatIList_1(x_1) ) = x_1 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, x_2 - 2} POL( s_1(x_1) ) = max{0, x_1 - 2} POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = 0 POL( U122_1(x_1) ) = max{0, -2} POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_3 + 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = x_1 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U23_1(x_1) ) = 2 POL( U31_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U33_1(x_1) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = 2 POL( U46_1(x_1) ) = max{0, x_1 - 2} POL( U51_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U52_1(x_1) ) = max{0, x_1 - 2} POL( U61_2(x_1, x_2) ) = x_1 + 2 POL( U62_1(x_1) ) = max{0, x_1 - 2} POL( U91_3(x_1, ..., x_3) ) = x_2 + 2 POL( U96_1(x_1) ) = x_1 POL( U71_1(x_1) ) = 2x_1 + 1 POL( U81_1(x_1) ) = max{0, -2} POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (501) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (502) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U92(X1, X2, X3)) -> ACTIVE(U92(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 0 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2x_3 + 1 POL( U44_3(x_1, ..., x_3) ) = 0 POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U92_3(x_1, ..., x_3) ) = x_3 + 2 POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = 2 POL( zeros ) = 1 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_1 + 2 POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 1} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = 2x_1 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 1 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = x_1 + 2 POL( U131_4(x_1, ..., x_4) ) = x_1 + x_2 + x_3 + 2x_4 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = 2x_2 + 2 POL( U135_4(x_1, ..., x_4) ) = 2x_2 + 2x_3 + 2 POL( U136_4(x_1, ..., x_4) ) = x_1 + x_3 + 2x_4 + 2 POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = 2x_2 + 2 POL( U32_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = x_1 + 2 POL( U46_1(x_1) ) = x_1 + 1 POL( U51_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U52_1(x_1) ) = 2x_1 + 1 POL( U61_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U62_1(x_1) ) = x_1 + 1 POL( U91_3(x_1, ..., x_3) ) = x_2 + 2 POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (503) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) MARK(U52(X)) -> MARK(X) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (504) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U51(tt, V2)) -> MARK(U52(isNatIListKind(V2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_1 + x_2 - 1} POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = x_1 POL( U11_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( s_1(x_1) ) = 2 POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = x_2 + 2 POL( U122_1(x_1) ) = x_1 POL( U131_4(x_1, ..., x_4) ) = x_2 + 2x_3 + 2 POL( U132_4(x_1, ..., x_4) ) = x_2 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = 2x_2 + 2x_4 + 2 POL( U135_4(x_1, ..., x_4) ) = 2x_3 + 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = 2 POL( U31_2(x_1, x_2) ) = 2x_1 + 2 POL( U32_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U33_1(x_1) ) = 1 POL( U41_3(x_1, ..., x_3) ) = max{0, x_1 + x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U46_1(x_1) ) = max{0, x_1 - 2} POL( U51_2(x_1, x_2) ) = 2x_1 + 2 POL( U52_1(x_1) ) = 2 POL( U61_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( U96_1(x_1) ) = 2 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = max{0, -2} POL( nil ) = 0 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (505) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U52(X)) -> MARK(X) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (506) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U52(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 0 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = max{0, x_1 - 2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + 2x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( U105_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = 2x_2 + 2x_3 + 2 POL( U132_4(x_1, ..., x_4) ) = x_1 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( take_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = 2 POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U46_1(x_1) ) = 2x_1 + 1 POL( U51_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U52_1(x_1) ) = x_1 + 2 POL( U61_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U96_1(x_1) ) = 2x_1 + 1 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 2 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (507) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (508) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U92(tt, V1, V2)) -> MARK(U93(isNatIListKind(V2), V1, V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 0 POL( U21_2(x_1, x_2) ) = 0 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U93_3(x_1, ..., x_3) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 1 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_1 + x_2 + 2 POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( tt ) = 1 POL( U102_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U105_2(x_1, x_2) ) = 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = 2x_1 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, x_1 - 2} POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 1 POL( isNatList_1(x_1) ) = 2x_1 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 1 POL( U131_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = 2x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U23_1(x_1) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( U46_1(x_1) ) = max{0, 2x_1 - 2} POL( U51_2(x_1, x_2) ) = 2 POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = max{0, -2} POL( U62_1(x_1) ) = 2 POL( U91_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = x_1 + x_2 + 2x_3 + 2 POL( U96_1(x_1) ) = max{0, x_1 - 2} POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = max{0, -2} POL( nil ) = 1 POL( MARK_1(x_1) ) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (509) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (510) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U43(X1, X2, X3)) -> ACTIVE(U43(mark(X1), X2, X3)) MARK(U93(X1, X2, X3)) -> ACTIVE(U93(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = 0 POL( U112_3(x_1, ..., x_3) ) = 1 POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U43_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2x_3 + 2 POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U93_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 2 POL( U94_3(x_1, ..., x_3) ) = max{0, -2} POL( U95_2(x_1, x_2) ) = 0 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = 0 POL( cons_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = x_2 + x_3 + 2 POL( U105_2(x_1, x_2) ) = 0 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 1 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2x_2 + 2 POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U122_1(x_1) ) = 0 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_3 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = x_1 + 2x_3 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_3 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_3 - 2} POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U32_2(x_1, x_2) ) = 2 POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U41_3(x_1, ..., x_3) ) = x_1 + x_3 POL( U42_3(x_1, ..., x_3) ) = x_3 + 2 POL( U46_1(x_1) ) = x_1 + 1 POL( U51_2(x_1, x_2) ) = x_1 + 2x_2 + 1 POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( U92_3(x_1, ..., x_3) ) = x_1 POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, 2x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (511) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (512) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U43(tt, V1, V2)) -> MARK(U44(isNatIListKind(V2), V1, V2)) ACTIVE(U93(tt, V1, V2)) -> MARK(U94(isNatIListKind(V2), V1, V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 1 POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = 0 POL( U44_3(x_1, ..., x_3) ) = 1 POL( U45_2(x_1, x_2) ) = 1 POL( U94_3(x_1, ..., x_3) ) = 1 POL( U95_2(x_1, x_2) ) = 1 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = x_1 + x_3 + 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( U105_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U12_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_1 + x_2 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, x_2 - 2} POL( U135_4(x_1, ..., x_4) ) = 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U23_1(x_1) ) = max{0, -2} POL( U31_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = 0 POL( U41_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = 2 POL( U46_1(x_1) ) = max{0, 2x_1 - 2} POL( U51_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U62_1(x_1) ) = 2 POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( U93_3(x_1, ..., x_3) ) = 2 POL( U96_1(x_1) ) = max{0, x_1 - 2} POL( U71_1(x_1) ) = max{0, x_1 - 2} POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (513) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (514) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U94(X1, X2, X3)) -> ACTIVE(U94(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = 2 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = 2x_1 + 1 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = x_3 + 2 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, x_1 - 2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( s_1(x_1) ) = 2x_1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_2 - 1} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = x_1 + x_2 + x_3 + 2 POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_3 + x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 + x_3 + x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = x_1 POL( U31_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_2 - 1} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2 POL( U46_1(x_1) ) = x_1 POL( U51_2(x_1, x_2) ) = 2 POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = max{0, x_1 - 2} POL( U91_3(x_1, ..., x_3) ) = 2 POL( U92_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 - 2} POL( U93_3(x_1, ..., x_3) ) = 2 POL( U96_1(x_1) ) = 2x_1 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = x_1 POL( nil ) = 0 POL( MARK_1(x_1) ) = 2x_1 + 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (515) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (516) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U94(tt, V1, V2)) -> MARK(U95(isNat(V1), V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2 POL( U95_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 2 POL( mark_1(x_1) ) = 2 POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_1 + x_2 POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = x_1 + x_2 + 2x_3 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 1} POL( U12_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U122_1(x_1) ) = 1 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 + 2x_3 + x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = 2x_1 + 2x_2 + 2 POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = 2x_2 + 2 POL( U136_4(x_1, ..., x_4) ) = 2 POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = 2x_1 + 2 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = x_1 + x_2 + 2 POL( U46_1(x_1) ) = max{0, 2x_1 - 2} POL( U51_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U62_1(x_1) ) = 0 POL( U91_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + x_3 - 2} POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( U96_1(x_1) ) = max{0, 2x_1 - 2} POL( U71_1(x_1) ) = max{0, 2x_1 - 2} POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 2 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) ---------------------------------------- (517) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (518) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U44(X1, X2, X3)) -> ACTIVE(U44(mark(X1), X2, X3)) MARK(U95(X1, X2)) -> ACTIVE(U95(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = 0 POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = 1 POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 1 POL( U22_2(x_1, x_2) ) = 1 POL( U44_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( U45_2(x_1, x_2) ) = x_1 + 1 POL( U95_2(x_1, x_2) ) = 2x_2 + 2 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2 POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = 2x_1 + 2x_2 + 2 POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = x_1 + 2x_2 + 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = x_3 + 2 POL( U105_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 1} POL( s_1(x_1) ) = 2x_1 + 1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U122_1(x_1) ) = x_1 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 + 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = x_2 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U33_1(x_1) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U46_1(x_1) ) = 2x_1 + 1 POL( U51_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U52_1(x_1) ) = 2 POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = 2 POL( U91_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U93_3(x_1, ..., x_3) ) = x_2 + 2 POL( U94_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U96_1(x_1) ) = x_1 + 1 POL( U71_1(x_1) ) = max{0, 2x_1 - 2} POL( U81_1(x_1) ) = x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, 2x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (519) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) MARK(U46(X)) -> MARK(X) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (520) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U45(tt, V2)) -> MARK(U46(isNatIList(V2))) ACTIVE(U95(tt, V2)) -> MARK(U96(isNatList(V2))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = 1 POL( U111_3(x_1, ..., x_3) ) = x_1 + 1 POL( U112_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U113_3(x_1, ..., x_3) ) = 1 POL( U114_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = 1 POL( U22_2(x_1, x_2) ) = 1 POL( U45_2(x_1, x_2) ) = 1 POL( length_1(x_1) ) = 1 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( tt ) = 1 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatKind_1(x_1) ) = 1 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = 2x_1 + 2 POL( isNat_1(x_1) ) = 1 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U12_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( s_1(x_1) ) = x_1 POL( U13_1(x_1) ) = x_1 + 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = x_1 POL( U131_4(x_1, ..., x_4) ) = x_1 + 2x_4 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, x_1 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( take_2(x_1, x_2) ) = 0 POL( U23_1(x_1) ) = x_1 POL( U31_2(x_1, x_2) ) = 2 POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = x_1 + 1 POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U42_3(x_1, ..., x_3) ) = x_1 + 2x_2 + x_3 POL( U43_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U44_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( U46_1(x_1) ) = x_1 POL( U51_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = 2 POL( U91_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U94_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U95_2(x_1, x_2) ) = 2 POL( U96_1(x_1) ) = 2x_1 POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = x_1 POL( nil ) = 0 POL( MARK_1(x_1) ) = x_1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (521) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) MARK(U46(X)) -> MARK(X) MARK(U96(X)) -> MARK(X) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (522) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U46(X)) -> MARK(X) MARK(U96(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = 1 POL( U45_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = x_1 + 2x_2 + x_3 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = x_1 + x_3 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = 2 POL( U105_2(x_1, x_2) ) = 2x_2 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 0 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U12_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = x_1 + 1 POL( isNatList_1(x_1) ) = 1 POL( U121_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( U122_1(x_1) ) = x_1 + 1 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_1 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = x_2 + 2 POL( U135_4(x_1, ..., x_4) ) = x_1 + x_2 + 2x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = x_3 + 2 POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = max{0, 2x_1 - 2} POL( U41_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( U44_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + 2x_3 - 2} POL( U46_1(x_1) ) = 2x_1 + 2 POL( U51_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U52_1(x_1) ) = 2 POL( U61_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = x_2 + 2 POL( U92_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_3 - 2} POL( U93_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 + x_3 - 2} POL( U94_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 1 POL( U95_2(x_1, x_2) ) = x_1 + 2 POL( U96_1(x_1) ) = x_1 + 2 POL( U71_1(x_1) ) = max{0, 2x_1 - 2} POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (523) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (524) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U44(tt, V1, V2)) -> MARK(U45(isNat(V1), V2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 1 POL( U112_3(x_1, ..., x_3) ) = 1 POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 1 POL( mark_1(x_1) ) = 0 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = x_1 + x_2 + 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2 POL( isNatIListKind_1(x_1) ) = 2 POL( U104_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 2x_1 POL( U121_2(x_1, x_2) ) = x_2 + 2 POL( U122_1(x_1) ) = 0 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 + 2x_3 + 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, 2x_1 + x_2 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = x_2 + 2 POL( take_2(x_1, x_2) ) = 2x_1 + x_2 + 2 POL( U23_1(x_1) ) = max{0, 2x_1 - 2} POL( U31_2(x_1, x_2) ) = 2x_2 + 2 POL( U32_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U33_1(x_1) ) = 1 POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 + x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U44_3(x_1, ..., x_3) ) = 2 POL( U46_1(x_1) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U52_1(x_1) ) = 1 POL( U61_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U62_1(x_1) ) = x_1 + 2 POL( U91_3(x_1, ..., x_3) ) = x_1 + 2x_2 + x_3 + 1 POL( U92_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 + x_3 - 2} POL( U93_3(x_1, ..., x_3) ) = x_2 + 2 POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U96_1(x_1) ) = 2 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = max{0, x_1 - 2} POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) ---------------------------------------- (525) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (526) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U45(X1, X2)) -> ACTIVE(U45(mark(X1), X2)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = x_1 + x_2 + 2x_3 + 2 POL( U105_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2 POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + x_3 - 2} POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = x_2 + 2x_3 + x_4 + 2 POL( U135_4(x_1, ..., x_4) ) = max{0, x_2 + x_3 + 2x_4 - 1} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 1} POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = max{0, x_1 - 1} POL( U41_3(x_1, ..., x_3) ) = 2 POL( U42_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = x_1 + 2 POL( U44_3(x_1, ..., x_3) ) = max{0, x_1 + x_3 - 2} POL( U46_1(x_1) ) = 0 POL( U51_2(x_1, x_2) ) = 2 POL( U52_1(x_1) ) = max{0, 2x_1 - 2} POL( U61_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U93_3(x_1, ..., x_3) ) = 2 POL( U94_3(x_1, ..., x_3) ) = x_1 + x_2 + x_3 + 2 POL( U95_2(x_1, x_2) ) = 2 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = 2 POL( U81_1(x_1) ) = 2x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (527) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (528) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(isNatKind(s(V1))) -> MARK(U81(isNatKind(V1))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = 0 POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, -2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( isNatKind_1(x_1) ) = 2x_1 + 2 POL( U103_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U12_2(x_1, x_2) ) = 1 POL( s_1(x_1) ) = x_1 + 2 POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U122_1(x_1) ) = 1 POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_1 + x_2 - 1} POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_1 + 2x_2 + 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_3 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = x_1 + x_2 + x_4 POL( U135_4(x_1, ..., x_4) ) = 2x_2 + 2 POL( U136_4(x_1, ..., x_4) ) = x_1 + 2x_4 + 2 POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = 2x_1 + 2 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = 2 POL( U43_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U44_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( U45_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U46_1(x_1) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U52_1(x_1) ) = max{0, -2} POL( U61_2(x_1, x_2) ) = x_1 + 2x_2 + 2 POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + 2x_3 - 2} POL( U92_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 1} POL( U93_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U94_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U95_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U96_1(x_1) ) = 1 POL( U71_1(x_1) ) = x_1 POL( U81_1(x_1) ) = x_1 + 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) ---------------------------------------- (529) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U81(X)) -> MARK(X) MARK(isNatKind(X)) -> ACTIVE(isNatKind(X)) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (530) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (531) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) MARK(U81(X)) -> MARK(X) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (532) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U81(X)) -> MARK(X) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = 0 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = max{0, 2x_1 - 2} POL( zeros ) = 2 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_1 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 + 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = x_1 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = 2x_1 + 2 POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 2 POL( U121_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_3 + x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, x_3 + 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = 2x_2 + 2x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2} POL( U33_1(x_1) ) = max{0, -2} POL( U41_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 + 2x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = 1 POL( U44_3(x_1, ..., x_3) ) = max{0, -2} POL( U45_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U46_1(x_1) ) = x_1 POL( U51_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U52_1(x_1) ) = 2 POL( U61_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U62_1(x_1) ) = max{0, 2x_1 - 2} POL( U91_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_3 - 2} POL( U92_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U93_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U94_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U95_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U96_1(x_1) ) = x_1 POL( U71_1(x_1) ) = max{0, 2x_1 - 2} POL( U81_1(x_1) ) = x_1 + 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (533) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (534) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U111(tt, L, N)) -> MARK(U112(isNatIListKind(L), L, N)) The remaining pairs can at least be oriented weakly. Used ordering: Matrix interpretation [MATRO] to (N^2, +, *, >=, >) : <<< POL(MARK(x_1)) = [[0]] + [[1, 0]] * x_1 >>> <<< POL(isNat(x_1)) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(ACTIVE(x_1)) = [[0]] + [[1, 0]] * x_1 >>> <<< POL(s(x_1)) = [[0], [1]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(U21(x_1, x_2)) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 >>> <<< POL(isNatKind(x_1)) = [[0], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(mark(x_1)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(U111(x_1, x_2, x_3)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(tt) = [[1], [1]] >>> <<< POL(U112(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(isNatIListKind(x_1)) = [[1], [0]] + [[1, 0], [0, 1]] * x_1 >>> <<< POL(U113(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(U114(x_1, x_2)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 >>> <<< POL(length(x_1)) = [[1], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(U22(x_1, x_2)) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [0, 0]] * x_2 >>> <<< POL(U23(x_1)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(cons(x_1, x_2)) = [[0], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [1, 0]] * x_2 >>> <<< POL(isNatList(x_1)) = [[1], [0]] + [[1, 0], [0, 0]] * x_1 >>> <<< POL(zeros) = [[0], [1]] >>> <<< POL(active(x_1)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(0) = [[1], [1]] >>> <<< POL(U101(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(U102(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(U103(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(U104(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(U105(x_1, x_2)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< POL(U106(x_1)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 >>> <<< POL(isNatIList(x_1)) = [[1], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< POL(U11(x_1, x_2)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 0], [0, 0]] * x_2 >>> <<< POL(U12(x_1, x_2)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [1, 0]] * x_2 >>> <<< POL(U13(x_1)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(U121(x_1, x_2)) = [[0], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< POL(U122(x_1)) = [[0], [1]] + [[0, 0], [0, 0]] * x_1 >>> <<< POL(U131(x_1, x_2, x_3, x_4)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 1]] * x_3 + [[0, 0], [0, 0]] * x_4 >>> <<< POL(U132(x_1, x_2, x_3, x_4)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 1]] * x_3 + [[0, 0], [0, 0]] * x_4 >>> <<< POL(U133(x_1, x_2, x_3, x_4)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[1, 1], [0, 0]] * x_3 + [[0, 0], [0, 0]] * x_4 >>> <<< POL(U134(x_1, x_2, x_3, x_4)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 1]] * x_3 + [[0, 0], [0, 0]] * x_4 >>> <<< POL(U135(x_1, x_2, x_3, x_4)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 1]] * x_3 + [[0, 0], [0, 0]] * x_4 >>> <<< POL(U136(x_1, x_2, x_3, x_4)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[1, 1], [0, 0]] * x_3 + [[0, 0], [0, 0]] * x_4 >>> <<< POL(take(x_1, x_2)) = [[1], [0]] + [[0, 0], [1, 1]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< POL(U31(x_1, x_2)) = [[0], [1]] + [[0, 0], [0, 0]] * x_1 + [[1, 0], [0, 0]] * x_2 >>> <<< POL(U32(x_1, x_2)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [1, 0]] * x_2 >>> <<< POL(U33(x_1)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 >>> <<< POL(U41(x_1, x_2, x_3)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[1, 1], [1, 0]] * x_3 >>> <<< POL(U42(x_1, x_2, x_3)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[1, 1], [1, 0]] * x_3 >>> <<< POL(U43(x_1, x_2, x_3)) = [[0], [0]] + [[1, 1], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[1, 0], [0, 0]] * x_3 >>> <<< POL(U44(x_1, x_2, x_3)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [0, 0]] * x_3 >>> <<< POL(U45(x_1, x_2)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< POL(U46(x_1)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 >>> <<< POL(U51(x_1, x_2)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[1, 1], [1, 0]] * x_2 >>> <<< POL(U52(x_1)) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< POL(U61(x_1, x_2)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 >>> <<< POL(U62(x_1)) = [[1], [1]] + [[0, 0], [0, 0]] * x_1 >>> <<< POL(U91(x_1, x_2, x_3)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[1, 0], [0, 0]] * x_3 >>> <<< POL(U92(x_1, x_2, x_3)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 0]] * x_3 >>> <<< POL(U93(x_1, x_2, x_3)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 0]] * x_3 >>> <<< POL(U94(x_1, x_2, x_3)) = [[1], [0]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [0, 0]] * x_2 + [[0, 0], [1, 0]] * x_3 >>> <<< POL(U95(x_1, x_2)) = [[0], [1]] + [[0, 0], [0, 0]] * x_1 + [[0, 0], [1, 0]] * x_2 >>> <<< POL(U96(x_1)) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< POL(U71(x_1)) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< POL(U81(x_1)) = [[0], [0]] + [[0, 0], [1, 1]] * x_1 >>> <<< POL(nil) = [[1], [0]] >>> The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) ---------------------------------------- (535) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (536) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U111(X1, X2, X3)) -> ACTIVE(U111(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 1} POL( U111_3(x_1, ..., x_3) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = 1 POL( U113_3(x_1, ..., x_3) ) = 1 POL( U114_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = 1 POL( U22_2(x_1, x_2) ) = 1 POL( length_1(x_1) ) = 1 POL( mark_1(x_1) ) = max{0, x_1 - 2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = 2x_2 + 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 + x_3 - 2} POL( isNatKind_1(x_1) ) = 2 POL( U103_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( isNatIListKind_1(x_1) ) = x_1 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_1 - 2} POL( isNat_1(x_1) ) = 1 POL( U106_1(x_1) ) = max{0, x_1 - 2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U12_2(x_1, x_2) ) = 2 POL( s_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = x_1 POL( U121_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( U122_1(x_1) ) = x_1 + 1 POL( U131_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + 2x_3 + 2x_4 - 2} POL( U132_4(x_1, ..., x_4) ) = max{0, x_2 + x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = x_1 + x_2 + 2 POL( U134_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 - 2} POL( U136_4(x_1, ..., x_4) ) = 2x_3 + 2 POL( take_2(x_1, x_2) ) = 2x_1 + x_2 + 2 POL( U23_1(x_1) ) = max{0, x_1 - 2} POL( U31_2(x_1, x_2) ) = x_2 + 1 POL( U32_2(x_1, x_2) ) = 2x_1 + 2 POL( U33_1(x_1) ) = 1 POL( U41_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2} POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U46_1(x_1) ) = 2 POL( U51_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U52_1(x_1) ) = max{0, x_1 - 2} POL( U61_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U62_1(x_1) ) = max{0, 2x_1 - 2} POL( U91_3(x_1, ..., x_3) ) = x_1 + x_2 + 2x_3 + 2 POL( U92_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U93_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( U94_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( U95_2(x_1, x_2) ) = 2x_1 + 2 POL( U96_1(x_1) ) = max{0, x_1 - 2} POL( U71_1(x_1) ) = max{0, 2x_1 - 2} POL( U81_1(x_1) ) = 2x_1 + 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) ---------------------------------------- (537) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) ACTIVE(length(cons(N, L))) -> MARK(U111(isNatList(L), L, N)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (538) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node. ---------------------------------------- (539) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (540) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U112(X1, X2, X3)) -> ACTIVE(U112(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U112_3(x_1, ..., x_3) ) = 2 POL( U113_3(x_1, ..., x_3) ) = 2x_1 + 1 POL( U114_2(x_1, x_2) ) = 2x_1 + 1 POL( U21_2(x_1, x_2) ) = 2x_1 + 1 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = 2 POL( cons_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = x_2 + 2x_3 + 2 POL( U105_2(x_1, x_2) ) = max{0, x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, x_1 - 2} POL( isNatIList_1(x_1) ) = 0 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U12_2(x_1, x_2) ) = 2x_2 + 2 POL( U111_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 + x_3 - 2} POL( s_1(x_1) ) = x_1 + 1 POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U122_1(x_1) ) = max{0, -2} POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, x_2 + x_3 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_2 + 2x_3 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( take_2(x_1, x_2) ) = 2 POL( U23_1(x_1) ) = x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U33_1(x_1) ) = 0 POL( U41_3(x_1, ..., x_3) ) = x_3 + 2 POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( U43_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U44_3(x_1, ..., x_3) ) = max{0, x_1 - 2} POL( U45_2(x_1, x_2) ) = 2 POL( U46_1(x_1) ) = max{0, x_1 - 2} POL( U51_2(x_1, x_2) ) = x_1 POL( U52_1(x_1) ) = 0 POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = 2 POL( U91_3(x_1, ..., x_3) ) = x_3 + 2 POL( U92_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( U93_3(x_1, ..., x_3) ) = max{0, x_1 + x_3 - 2} POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U96_1(x_1) ) = 2 POL( U71_1(x_1) ) = 0 POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (541) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (542) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U112(tt, L, N)) -> MARK(U113(isNat(N), L, N)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, 2x_1 - 2} POL( U113_3(x_1, ..., x_3) ) = max{0, -2} POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( length_1(x_1) ) = max{0, -2} POL( mark_1(x_1) ) = max{0, x_1 - 2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, -2} POL( cons_2(x_1, x_2) ) = 2x_1 + x_2 + 2 POL( 0 ) = 2 POL( U101_3(x_1, ..., x_3) ) = x_1 + x_2 + 2x_3 POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( isNatIListKind_1(x_1) ) = 2 POL( U104_3(x_1, ..., x_3) ) = 2x_1 + x_3 + 2 POL( U105_2(x_1, x_2) ) = 2x_1 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatIList_1(x_1) ) = x_1 POL( U11_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U12_2(x_1, x_2) ) = 2 POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = 2 POL( s_1(x_1) ) = max{0, 2x_1 - 2} POL( U13_1(x_1) ) = max{0, 2x_1 - 2} POL( isNatList_1(x_1) ) = x_1 + 2 POL( U121_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U122_1(x_1) ) = max{0, 2x_1 - 2} POL( U131_4(x_1, ..., x_4) ) = max{0, 2x_2 - 2} POL( U132_4(x_1, ..., x_4) ) = 2 POL( U133_4(x_1, ..., x_4) ) = 2 POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_2 + x_3 + x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_2 + x_3 - 2} POL( take_2(x_1, x_2) ) = max{0, -2} POL( U23_1(x_1) ) = 0 POL( U31_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U33_1(x_1) ) = 2 POL( U41_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( U43_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( U44_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U45_2(x_1, x_2) ) = 2 POL( U46_1(x_1) ) = max{0, x_1 - 2} POL( U51_2(x_1, x_2) ) = 2 POL( U52_1(x_1) ) = max{0, x_1 - 2} POL( U61_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U62_1(x_1) ) = 2x_1 + 2 POL( U91_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = 2 POL( U93_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U94_3(x_1, ..., x_3) ) = 2 POL( U95_2(x_1, x_2) ) = 2x_1 + 2 POL( U96_1(x_1) ) = 2x_1 + 2 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) ---------------------------------------- (543) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) MARK(length(X)) -> ACTIVE(length(mark(X))) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (544) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(length(X)) -> ACTIVE(length(mark(X))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, x_1 - 1} POL( U113_3(x_1, ..., x_3) ) = 2 POL( U114_2(x_1, x_2) ) = 2 POL( U21_2(x_1, x_2) ) = 2 POL( U22_2(x_1, x_2) ) = 2 POL( length_1(x_1) ) = 0 POL( mark_1(x_1) ) = max{0, -2} POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + 2x_3 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = x_1 + x_2 + 2x_3 + 2 POL( isNatIListKind_1(x_1) ) = 2x_1 + 2 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_2 + x_3 - 2} POL( U105_2(x_1, x_2) ) = x_2 + 2 POL( isNat_1(x_1) ) = 2 POL( U106_1(x_1) ) = max{0, x_1 - 2} POL( isNatIList_1(x_1) ) = 2x_1 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, 2x_1 - 2} POL( U111_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U112_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 2} POL( s_1(x_1) ) = x_1 POL( U13_1(x_1) ) = 0 POL( isNatList_1(x_1) ) = 2x_1 POL( U121_2(x_1, x_2) ) = 2 POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2x_1 + 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = max{0, x_1 - 2} POL( U23_1(x_1) ) = 2 POL( U31_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( U33_1(x_1) ) = max{0, x_1 - 2} POL( U41_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( U42_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( U43_3(x_1, ..., x_3) ) = x_1 + 2 POL( U44_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U45_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U46_1(x_1) ) = 2 POL( U51_2(x_1, x_2) ) = 2 POL( U52_1(x_1) ) = 2 POL( U61_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 2} POL( U92_3(x_1, ..., x_3) ) = x_1 + 2x_2 + x_3 + 2 POL( U93_3(x_1, ..., x_3) ) = x_1 + x_2 + x_3 + 2 POL( U94_3(x_1, ..., x_3) ) = max{0, 2x_2 + 2x_3 - 2} POL( U95_2(x_1, x_2) ) = 2 POL( U96_1(x_1) ) = max{0, -2} POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = 2 POL( nil ) = 0 POL( MARK_1(x_1) ) = 1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) length(active(X)) -> length(X) length(mark(X)) -> length(X) ---------------------------------------- (545) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (546) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(U113(X1, X2, X3)) -> ACTIVE(U113(mark(X1), X2, X3)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = max{0, -2} POL( U113_3(x_1, ..., x_3) ) = 2x_2 + x_3 + 2 POL( U114_2(x_1, x_2) ) = 1 POL( U21_2(x_1, x_2) ) = 1 POL( U22_2(x_1, x_2) ) = max{0, -2} POL( mark_1(x_1) ) = 2 POL( zeros ) = 0 POL( active_1(x_1) ) = max{0, 2x_1 - 2} POL( cons_2(x_1, x_2) ) = 2x_2 + 2 POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = 2x_3 + 2 POL( tt ) = 2 POL( U102_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_2 + x_3 - 1} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = 2 POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U105_2(x_1, x_2) ) = x_1 + 2 POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = max{0, -2} POL( isNatIList_1(x_1) ) = x_1 + 2 POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U12_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U111_3(x_1, ..., x_3) ) = max{0, x_1 + x_3 - 2} POL( U112_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2 POL( s_1(x_1) ) = 2x_1 + 1 POL( length_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = max{0, -2} POL( isNatList_1(x_1) ) = x_1 + 2 POL( U121_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, x_1 + x_2 + x_3 + 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = 2x_2 + 2x_4 + 2 POL( U134_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 - 2} POL( U135_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 + x_4 - 2} POL( U136_4(x_1, ..., x_4) ) = 2x_2 + 2x_3 + 2 POL( take_2(x_1, x_2) ) = 1 POL( U23_1(x_1) ) = 2x_1 + 1 POL( U31_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U32_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U33_1(x_1) ) = 0 POL( U41_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( U42_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = x_1 + x_2 + 2 POL( U44_3(x_1, ..., x_3) ) = 2 POL( U45_2(x_1, x_2) ) = 2x_1 + 2 POL( U46_1(x_1) ) = max{0, -2} POL( U51_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2} POL( U52_1(x_1) ) = 2 POL( U61_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U62_1(x_1) ) = max{0, -2} POL( U91_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U92_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2 POL( U93_3(x_1, ..., x_3) ) = 2x_2 + 2 POL( U94_3(x_1, ..., x_3) ) = max{0, x_1 + x_2 - 2} POL( U95_2(x_1, x_2) ) = max{0, x_1 + x_2 - 2} POL( U96_1(x_1) ) = 2 POL( U71_1(x_1) ) = max{0, 2x_1 - 1} POL( U81_1(x_1) ) = max{0, 2x_1 - 2} POL( nil ) = 1 POL( MARK_1(x_1) ) = max{0, x_1 - 1} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: none ---------------------------------------- (547) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (548) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U113(tt, L, N)) -> MARK(U114(isNatKind(N), L)) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial Order [NEGPOLO,POLO] with Interpretation: POL( ACTIVE_1(x_1) ) = x_1 POL( U114_2(x_1, x_2) ) = max{0, -2} POL( U21_2(x_1, x_2) ) = max{0, -2} POL( U22_2(x_1, x_2) ) = max{0, -2} POL( mark_1(x_1) ) = 2 POL( zeros ) = 1 POL( active_1(x_1) ) = max{0, x_1 - 2} POL( cons_2(x_1, x_2) ) = max{0, 2x_2 - 1} POL( 0 ) = 0 POL( U101_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( tt ) = 0 POL( U102_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( isNatKind_1(x_1) ) = 0 POL( U103_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_3 - 2} POL( isNatIListKind_1(x_1) ) = 0 POL( U104_3(x_1, ..., x_3) ) = max{0, x_2 + x_3 - 2} POL( U105_2(x_1, x_2) ) = max{0, x_2 - 2} POL( isNat_1(x_1) ) = 0 POL( U106_1(x_1) ) = 2 POL( isNatIList_1(x_1) ) = 2x_1 + 2 POL( U11_2(x_1, x_2) ) = 2 POL( U12_2(x_1, x_2) ) = max{0, 2x_1 + x_2 - 1} POL( U111_3(x_1, ..., x_3) ) = 2 POL( U112_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2} POL( U113_3(x_1, ..., x_3) ) = 1 POL( s_1(x_1) ) = 0 POL( length_1(x_1) ) = max{0, -2} POL( U13_1(x_1) ) = 2 POL( isNatList_1(x_1) ) = 0 POL( U121_2(x_1, x_2) ) = max{0, x_2 - 2} POL( U122_1(x_1) ) = 2 POL( U131_4(x_1, ..., x_4) ) = 2 POL( U132_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U133_4(x_1, ..., x_4) ) = max{0, 2x_4 - 2} POL( U134_4(x_1, ..., x_4) ) = 2x_1 + 2x_4 + 2 POL( U135_4(x_1, ..., x_4) ) = 2x_2 + x_4 + 2 POL( U136_4(x_1, ..., x_4) ) = max{0, 2x_2 + x_3 + 2x_4 - 2} POL( take_2(x_1, x_2) ) = 0 POL( U23_1(x_1) ) = max{0, 2x_1 - 2} POL( U31_2(x_1, x_2) ) = 2x_2 + 2 POL( U32_2(x_1, x_2) ) = 2 POL( U33_1(x_1) ) = max{0, x_1 - 2} POL( U41_3(x_1, ..., x_3) ) = max{0, 2x_2 - 2} POL( U42_3(x_1, ..., x_3) ) = max{0, x_2 + 2x_3 - 2} POL( U43_3(x_1, ..., x_3) ) = 2 POL( U44_3(x_1, ..., x_3) ) = max{0, x_1 + 2x_2 - 2} POL( U45_2(x_1, x_2) ) = 2 POL( U46_1(x_1) ) = 2 POL( U51_2(x_1, x_2) ) = 2x_1 + x_2 POL( U52_1(x_1) ) = max{0, x_1 - 2} POL( U61_2(x_1, x_2) ) = 2 POL( U62_1(x_1) ) = max{0, x_1 - 2} POL( U91_3(x_1, ..., x_3) ) = 2x_1 + 2 POL( U92_3(x_1, ..., x_3) ) = 2x_2 + 2x_3 + 2 POL( U93_3(x_1, ..., x_3) ) = max{0, x_2 - 2} POL( U94_3(x_1, ..., x_3) ) = max{0, 2x_1 + x_3 - 2} POL( U95_2(x_1, x_2) ) = max{0, 2x_2 - 2} POL( U96_1(x_1) ) = 2x_1 + 2 POL( U71_1(x_1) ) = max{0, -2} POL( U81_1(x_1) ) = x_1 + 1 POL( nil ) = 0 POL( MARK_1(x_1) ) = max{0, -2} The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) ---------------------------------------- (549) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(s(X)) -> MARK(X) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) MARK(U23(X)) -> MARK(X) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (550) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. MARK(s(X)) -> MARK(X) ACTIVE(U22(tt, V1)) -> MARK(U23(isNat(V1))) The remaining pairs can at least be oriented weakly. Used ordering: Polynomial interpretation [POLO]: POL(0) = 0 POL(ACTIVE(x_1)) = x_1 POL(MARK(x_1)) = x_1 POL(U101(x_1, x_2, x_3)) = x_3 POL(U102(x_1, x_2, x_3)) = x_2 + x_3 POL(U103(x_1, x_2, x_3)) = x_2 + x_3 POL(U104(x_1, x_2, x_3)) = x_2 + x_3 POL(U105(x_1, x_2)) = x_2 POL(U106(x_1)) = 0 POL(U11(x_1, x_2)) = 0 POL(U111(x_1, x_2, x_3)) = x_3 POL(U112(x_1, x_2, x_3)) = x_3 POL(U113(x_1, x_2, x_3)) = x_2 + x_3 POL(U114(x_1, x_2)) = 1 POL(U12(x_1, x_2)) = x_2 POL(U121(x_1, x_2)) = x_2 POL(U122(x_1)) = 0 POL(U13(x_1)) = 0 POL(U131(x_1, x_2, x_3, x_4)) = x_3 + x_4 POL(U132(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U133(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U134(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U135(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U136(x_1, x_2, x_3, x_4)) = x_2 + x_3 + x_4 POL(U21(x_1, x_2)) = 1 + x_2 POL(U22(x_1, x_2)) = 1 + x_2 POL(U23(x_1)) = x_1 POL(U31(x_1, x_2)) = x_2 POL(U32(x_1, x_2)) = x_2 POL(U33(x_1)) = 0 POL(U41(x_1, x_2, x_3)) = x_3 POL(U42(x_1, x_2, x_3)) = x_2 + x_3 POL(U43(x_1, x_2, x_3)) = x_2 + x_3 POL(U44(x_1, x_2, x_3)) = x_2 + x_3 POL(U45(x_1, x_2)) = x_2 POL(U46(x_1)) = 0 POL(U51(x_1, x_2)) = x_2 POL(U52(x_1)) = 0 POL(U61(x_1, x_2)) = x_2 POL(U62(x_1)) = 0 POL(U71(x_1)) = 0 POL(U81(x_1)) = 0 POL(U91(x_1, x_2, x_3)) = x_3 POL(U92(x_1, x_2, x_3)) = x_2 + x_3 POL(U93(x_1, x_2, x_3)) = x_2 + x_3 POL(U94(x_1, x_2, x_3)) = x_2 + x_3 POL(U95(x_1, x_2)) = x_2 POL(U96(x_1)) = 0 POL(active(x_1)) = x_1 POL(cons(x_1, x_2)) = 0 POL(isNat(x_1)) = x_1 POL(isNatIList(x_1)) = 0 POL(isNatIListKind(x_1)) = 0 POL(isNatKind(x_1)) = 0 POL(isNatList(x_1)) = 0 POL(length(x_1)) = 0 POL(mark(x_1)) = x_1 POL(nil) = 0 POL(s(x_1)) = 1 + x_1 POL(take(x_1, x_2)) = 0 POL(tt) = 0 POL(zeros) = 0 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) ---------------------------------------- (551) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(isNat(s(V1))) -> MARK(U21(isNatKind(V1), V1)) MARK(U21(X1, X2)) -> ACTIVE(U21(mark(X1), X2)) MARK(U114(X1, X2)) -> ACTIVE(U114(mark(X1), X2)) ACTIVE(U114(tt, L)) -> MARK(s(length(L))) MARK(isNat(X)) -> ACTIVE(isNat(X)) ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) MARK(U23(X)) -> MARK(X) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (552) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs with 5 less nodes. ---------------------------------------- (553) Complex Obligation (AND) ---------------------------------------- (554) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (555) TransformationProof (EQUIVALENT) By instantiating [LPAR04] the rule MARK(U22(X1, X2)) -> ACTIVE(U22(mark(X1), X2)) we obtained the following new rules [LPAR04]: (MARK(U22(isNatKind(z0), z0)) -> ACTIVE(U22(mark(isNatKind(z0)), z0)),MARK(U22(isNatKind(z0), z0)) -> ACTIVE(U22(mark(isNatKind(z0)), z0))) ---------------------------------------- (556) Obligation: Q DP problem: The TRS P consists of the following rules: ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(isNatKind(z0), z0)) -> ACTIVE(U22(mark(isNatKind(z0)), z0)) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (557) QDPOrderProof (EQUIVALENT) We use the reduction pair processor [LPAR04,JAR06]. The following pairs can be oriented strictly and are deleted. ACTIVE(U21(tt, V1)) -> MARK(U22(isNatKind(V1), V1)) MARK(U22(isNatKind(z0), z0)) -> ACTIVE(U22(mark(isNatKind(z0)), z0)) The remaining pairs can at least be oriented weakly. Used ordering: Combined order from the following AFS and order. ACTIVE(x1) = x1 U21(x1, x2) = U21 MARK(x1) = MARK U22(x1, x2) = U22 Knuth-Bendix order [KBO] with precedence:MARK > U22 and weight map: U21=2 MARK=1 U22=1 The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented: U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) ---------------------------------------- (558) Obligation: Q DP problem: P is empty. The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (559) PisEmptyProof (EQUIVALENT) The TRS P is empty. Hence, there is no (P,Q,R) chain. ---------------------------------------- (560) YES ---------------------------------------- (561) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U23(X)) -> MARK(X) The TRS R consists of the following rules: mark(zeros) -> active(zeros) mark(cons(X1, X2)) -> active(cons(mark(X1), X2)) active(zeros) -> mark(cons(0, zeros)) active(U101(tt, V1, V2)) -> mark(U102(isNatKind(V1), V1, V2)) mark(U102(X1, X2, X3)) -> active(U102(mark(X1), X2, X3)) active(U102(tt, V1, V2)) -> mark(U103(isNatIListKind(V2), V1, V2)) mark(U103(X1, X2, X3)) -> active(U103(mark(X1), X2, X3)) active(U103(tt, V1, V2)) -> mark(U104(isNatIListKind(V2), V1, V2)) mark(U104(X1, X2, X3)) -> active(U104(mark(X1), X2, X3)) active(U104(tt, V1, V2)) -> mark(U105(isNat(V1), V2)) mark(U105(X1, X2)) -> active(U105(mark(X1), X2)) active(U105(tt, V2)) -> mark(U106(isNatIList(V2))) mark(U106(X)) -> active(U106(mark(X))) active(U11(tt, V1)) -> mark(U12(isNatIListKind(V1), V1)) mark(U12(X1, X2)) -> active(U12(mark(X1), X2)) active(U111(tt, L, N)) -> mark(U112(isNatIListKind(L), L, N)) mark(U112(X1, X2, X3)) -> active(U112(mark(X1), X2, X3)) active(U112(tt, L, N)) -> mark(U113(isNat(N), L, N)) mark(U113(X1, X2, X3)) -> active(U113(mark(X1), X2, X3)) active(U113(tt, L, N)) -> mark(U114(isNatKind(N), L)) mark(U114(X1, X2)) -> active(U114(mark(X1), X2)) active(U114(tt, L)) -> mark(s(length(L))) mark(s(X)) -> active(s(mark(X))) active(U12(tt, V1)) -> mark(U13(isNatList(V1))) mark(U13(X)) -> active(U13(mark(X))) active(U121(tt, IL)) -> mark(U122(isNatIListKind(IL))) mark(U122(X)) -> active(U122(mark(X))) active(U131(tt, IL, M, N)) -> mark(U132(isNatIListKind(IL), IL, M, N)) mark(U132(X1, X2, X3, X4)) -> active(U132(mark(X1), X2, X3, X4)) active(U132(tt, IL, M, N)) -> mark(U133(isNat(M), IL, M, N)) mark(U133(X1, X2, X3, X4)) -> active(U133(mark(X1), X2, X3, X4)) active(U133(tt, IL, M, N)) -> mark(U134(isNatKind(M), IL, M, N)) mark(U134(X1, X2, X3, X4)) -> active(U134(mark(X1), X2, X3, X4)) active(U134(tt, IL, M, N)) -> mark(U135(isNat(N), IL, M, N)) mark(U135(X1, X2, X3, X4)) -> active(U135(mark(X1), X2, X3, X4)) active(U135(tt, IL, M, N)) -> mark(U136(isNatKind(N), IL, M, N)) mark(U136(X1, X2, X3, X4)) -> active(U136(mark(X1), X2, X3, X4)) active(U136(tt, IL, M, N)) -> mark(cons(N, take(M, IL))) active(U21(tt, V1)) -> mark(U22(isNatKind(V1), V1)) mark(U22(X1, X2)) -> active(U22(mark(X1), X2)) active(U22(tt, V1)) -> mark(U23(isNat(V1))) mark(U23(X)) -> active(U23(mark(X))) active(U31(tt, V)) -> mark(U32(isNatIListKind(V), V)) mark(U32(X1, X2)) -> active(U32(mark(X1), X2)) active(U32(tt, V)) -> mark(U33(isNatList(V))) mark(U33(X)) -> active(U33(mark(X))) active(U41(tt, V1, V2)) -> mark(U42(isNatKind(V1), V1, V2)) mark(U42(X1, X2, X3)) -> active(U42(mark(X1), X2, X3)) active(U42(tt, V1, V2)) -> mark(U43(isNatIListKind(V2), V1, V2)) mark(U43(X1, X2, X3)) -> active(U43(mark(X1), X2, X3)) active(U43(tt, V1, V2)) -> mark(U44(isNatIListKind(V2), V1, V2)) mark(U44(X1, X2, X3)) -> active(U44(mark(X1), X2, X3)) active(U44(tt, V1, V2)) -> mark(U45(isNat(V1), V2)) mark(U45(X1, X2)) -> active(U45(mark(X1), X2)) active(U45(tt, V2)) -> mark(U46(isNatIList(V2))) mark(U46(X)) -> active(U46(mark(X))) active(U51(tt, V2)) -> mark(U52(isNatIListKind(V2))) mark(U52(X)) -> active(U52(mark(X))) active(U61(tt, V2)) -> mark(U62(isNatIListKind(V2))) mark(U62(X)) -> active(U62(mark(X))) active(U91(tt, V1, V2)) -> mark(U92(isNatKind(V1), V1, V2)) mark(U92(X1, X2, X3)) -> active(U92(mark(X1), X2, X3)) active(U92(tt, V1, V2)) -> mark(U93(isNatIListKind(V2), V1, V2)) mark(U93(X1, X2, X3)) -> active(U93(mark(X1), X2, X3)) active(U93(tt, V1, V2)) -> mark(U94(isNatIListKind(V2), V1, V2)) mark(U94(X1, X2, X3)) -> active(U94(mark(X1), X2, X3)) active(U94(tt, V1, V2)) -> mark(U95(isNat(V1), V2)) mark(U95(X1, X2)) -> active(U95(mark(X1), X2)) active(U95(tt, V2)) -> mark(U96(isNatList(V2))) mark(U96(X)) -> active(U96(mark(X))) active(isNat(length(V1))) -> mark(U11(isNatIListKind(V1), V1)) mark(U11(X1, X2)) -> active(U11(mark(X1), X2)) active(isNat(s(V1))) -> mark(U21(isNatKind(V1), V1)) mark(U21(X1, X2)) -> active(U21(mark(X1), X2)) active(isNatIList(V)) -> mark(U31(isNatIListKind(V), V)) mark(U31(X1, X2)) -> active(U31(mark(X1), X2)) active(isNatIList(cons(V1, V2))) -> mark(U41(isNatKind(V1), V1, V2)) mark(U41(X1, X2, X3)) -> active(U41(mark(X1), X2, X3)) active(isNatIListKind(cons(V1, V2))) -> mark(U51(isNatKind(V1), V2)) mark(U51(X1, X2)) -> active(U51(mark(X1), X2)) active(isNatIListKind(take(V1, V2))) -> mark(U61(isNatKind(V1), V2)) mark(U61(X1, X2)) -> active(U61(mark(X1), X2)) active(isNatKind(length(V1))) -> mark(U71(isNatIListKind(V1))) mark(U71(X)) -> active(U71(mark(X))) active(isNatKind(s(V1))) -> mark(U81(isNatKind(V1))) mark(U81(X)) -> active(U81(mark(X))) active(isNatList(cons(V1, V2))) -> mark(U91(isNatKind(V1), V1, V2)) mark(U91(X1, X2, X3)) -> active(U91(mark(X1), X2, X3)) active(isNatList(take(V1, V2))) -> mark(U101(isNatKind(V1), V1, V2)) mark(U101(X1, X2, X3)) -> active(U101(mark(X1), X2, X3)) active(length(cons(N, L))) -> mark(U111(isNatList(L), L, N)) mark(U111(X1, X2, X3)) -> active(U111(mark(X1), X2, X3)) active(take(0, IL)) -> mark(U121(isNatIList(IL), IL)) mark(U121(X1, X2)) -> active(U121(mark(X1), X2)) active(take(s(M), cons(N, IL))) -> mark(U131(isNatIList(IL), IL, M, N)) mark(U131(X1, X2, X3, X4)) -> active(U131(mark(X1), X2, X3, X4)) mark(0) -> active(0) mark(tt) -> active(tt) mark(isNatKind(X)) -> active(isNatKind(X)) mark(isNatIListKind(X)) -> active(isNatIListKind(X)) mark(isNat(X)) -> active(isNat(X)) mark(isNatIList(X)) -> active(isNatIList(X)) mark(length(X)) -> active(length(mark(X))) mark(isNatList(X)) -> active(isNatList(X)) mark(nil) -> active(nil) mark(take(X1, X2)) -> active(take(mark(X1), mark(X2))) U81(active(X)) -> U81(X) U81(mark(X)) -> U81(X) take(X1, mark(X2)) -> take(X1, X2) take(mark(X1), X2) -> take(X1, X2) take(active(X1), X2) -> take(X1, X2) take(X1, active(X2)) -> take(X1, X2) active(U106(tt)) -> mark(tt) active(U122(tt)) -> mark(nil) active(U13(tt)) -> mark(tt) active(U23(tt)) -> mark(tt) active(U33(tt)) -> mark(tt) active(U46(tt)) -> mark(tt) active(U52(tt)) -> mark(tt) active(U62(tt)) -> mark(tt) active(U71(tt)) -> mark(tt) active(U81(tt)) -> mark(tt) active(U96(tt)) -> mark(tt) active(isNat(0)) -> mark(tt) active(isNatIList(zeros)) -> mark(tt) active(isNatIListKind(nil)) -> mark(tt) active(isNatIListKind(zeros)) -> mark(tt) active(isNatKind(0)) -> mark(tt) active(isNatList(nil)) -> mark(tt) active(length(nil)) -> mark(0) length(active(X)) -> length(X) length(mark(X)) -> length(X) cons(X1, mark(X2)) -> cons(X1, X2) cons(mark(X1), X2) -> cons(X1, X2) cons(active(X1), X2) -> cons(X1, X2) cons(X1, active(X2)) -> cons(X1, X2) U102(X1, mark(X2), X3) -> U102(X1, X2, X3) U102(mark(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, X2, mark(X3)) -> U102(X1, X2, X3) U102(active(X1), X2, X3) -> U102(X1, X2, X3) U102(X1, active(X2), X3) -> U102(X1, X2, X3) U102(X1, X2, active(X3)) -> U102(X1, X2, X3) U103(X1, mark(X2), X3) -> U103(X1, X2, X3) U103(mark(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, X2, mark(X3)) -> U103(X1, X2, X3) U103(active(X1), X2, X3) -> U103(X1, X2, X3) U103(X1, active(X2), X3) -> U103(X1, X2, X3) U103(X1, X2, active(X3)) -> U103(X1, X2, X3) U104(X1, mark(X2), X3) -> U104(X1, X2, X3) U104(mark(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, X2, mark(X3)) -> U104(X1, X2, X3) U104(active(X1), X2, X3) -> U104(X1, X2, X3) U104(X1, active(X2), X3) -> U104(X1, X2, X3) U104(X1, X2, active(X3)) -> U104(X1, X2, X3) U105(X1, mark(X2)) -> U105(X1, X2) U105(mark(X1), X2) -> U105(X1, X2) U105(active(X1), X2) -> U105(X1, X2) U105(X1, active(X2)) -> U105(X1, X2) U106(active(X)) -> U106(X) U106(mark(X)) -> U106(X) U12(X1, mark(X2)) -> U12(X1, X2) U12(mark(X1), X2) -> U12(X1, X2) U12(active(X1), X2) -> U12(X1, X2) U12(X1, active(X2)) -> U12(X1, X2) U112(X1, mark(X2), X3) -> U112(X1, X2, X3) U112(mark(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, X2, mark(X3)) -> U112(X1, X2, X3) U112(active(X1), X2, X3) -> U112(X1, X2, X3) U112(X1, active(X2), X3) -> U112(X1, X2, X3) U112(X1, X2, active(X3)) -> U112(X1, X2, X3) U113(X1, mark(X2), X3) -> U113(X1, X2, X3) U113(mark(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, X2, mark(X3)) -> U113(X1, X2, X3) U113(active(X1), X2, X3) -> U113(X1, X2, X3) U113(X1, active(X2), X3) -> U113(X1, X2, X3) U113(X1, X2, active(X3)) -> U113(X1, X2, X3) U114(X1, mark(X2)) -> U114(X1, X2) U114(mark(X1), X2) -> U114(X1, X2) U114(active(X1), X2) -> U114(X1, X2) U114(X1, active(X2)) -> U114(X1, X2) s(active(X)) -> s(X) s(mark(X)) -> s(X) U13(active(X)) -> U13(X) U13(mark(X)) -> U13(X) U122(active(X)) -> U122(X) U122(mark(X)) -> U122(X) U132(X1, mark(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(mark(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, mark(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, mark(X4)) -> U132(X1, X2, X3, X4) U132(active(X1), X2, X3, X4) -> U132(X1, X2, X3, X4) U132(X1, active(X2), X3, X4) -> U132(X1, X2, X3, X4) U132(X1, X2, active(X3), X4) -> U132(X1, X2, X3, X4) U132(X1, X2, X3, active(X4)) -> U132(X1, X2, X3, X4) U133(X1, mark(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(mark(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, mark(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, mark(X4)) -> U133(X1, X2, X3, X4) U133(active(X1), X2, X3, X4) -> U133(X1, X2, X3, X4) U133(X1, active(X2), X3, X4) -> U133(X1, X2, X3, X4) U133(X1, X2, active(X3), X4) -> U133(X1, X2, X3, X4) U133(X1, X2, X3, active(X4)) -> U133(X1, X2, X3, X4) U134(X1, mark(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(mark(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, mark(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, mark(X4)) -> U134(X1, X2, X3, X4) U134(active(X1), X2, X3, X4) -> U134(X1, X2, X3, X4) U134(X1, active(X2), X3, X4) -> U134(X1, X2, X3, X4) U134(X1, X2, active(X3), X4) -> U134(X1, X2, X3, X4) U134(X1, X2, X3, active(X4)) -> U134(X1, X2, X3, X4) U135(X1, mark(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(mark(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, mark(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, mark(X4)) -> U135(X1, X2, X3, X4) U135(active(X1), X2, X3, X4) -> U135(X1, X2, X3, X4) U135(X1, active(X2), X3, X4) -> U135(X1, X2, X3, X4) U135(X1, X2, active(X3), X4) -> U135(X1, X2, X3, X4) U135(X1, X2, X3, active(X4)) -> U135(X1, X2, X3, X4) U136(X1, mark(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(mark(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, mark(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, mark(X4)) -> U136(X1, X2, X3, X4) U136(active(X1), X2, X3, X4) -> U136(X1, X2, X3, X4) U136(X1, active(X2), X3, X4) -> U136(X1, X2, X3, X4) U136(X1, X2, active(X3), X4) -> U136(X1, X2, X3, X4) U136(X1, X2, X3, active(X4)) -> U136(X1, X2, X3, X4) U22(X1, mark(X2)) -> U22(X1, X2) U22(mark(X1), X2) -> U22(X1, X2) U22(active(X1), X2) -> U22(X1, X2) U22(X1, active(X2)) -> U22(X1, X2) U23(active(X)) -> U23(X) U23(mark(X)) -> U23(X) U32(X1, mark(X2)) -> U32(X1, X2) U32(mark(X1), X2) -> U32(X1, X2) U32(active(X1), X2) -> U32(X1, X2) U32(X1, active(X2)) -> U32(X1, X2) U33(active(X)) -> U33(X) U33(mark(X)) -> U33(X) U42(X1, mark(X2), X3) -> U42(X1, X2, X3) U42(mark(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, X2, mark(X3)) -> U42(X1, X2, X3) U42(active(X1), X2, X3) -> U42(X1, X2, X3) U42(X1, active(X2), X3) -> U42(X1, X2, X3) U42(X1, X2, active(X3)) -> U42(X1, X2, X3) U43(X1, mark(X2), X3) -> U43(X1, X2, X3) U43(mark(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, X2, mark(X3)) -> U43(X1, X2, X3) U43(active(X1), X2, X3) -> U43(X1, X2, X3) U43(X1, active(X2), X3) -> U43(X1, X2, X3) U43(X1, X2, active(X3)) -> U43(X1, X2, X3) U44(X1, mark(X2), X3) -> U44(X1, X2, X3) U44(mark(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, X2, mark(X3)) -> U44(X1, X2, X3) U44(active(X1), X2, X3) -> U44(X1, X2, X3) U44(X1, active(X2), X3) -> U44(X1, X2, X3) U44(X1, X2, active(X3)) -> U44(X1, X2, X3) U45(X1, mark(X2)) -> U45(X1, X2) U45(mark(X1), X2) -> U45(X1, X2) U45(active(X1), X2) -> U45(X1, X2) U45(X1, active(X2)) -> U45(X1, X2) U46(active(X)) -> U46(X) U46(mark(X)) -> U46(X) U52(active(X)) -> U52(X) U52(mark(X)) -> U52(X) U62(active(X)) -> U62(X) U62(mark(X)) -> U62(X) U92(X1, mark(X2), X3) -> U92(X1, X2, X3) U92(mark(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, X2, mark(X3)) -> U92(X1, X2, X3) U92(active(X1), X2, X3) -> U92(X1, X2, X3) U92(X1, active(X2), X3) -> U92(X1, X2, X3) U92(X1, X2, active(X3)) -> U92(X1, X2, X3) U93(X1, mark(X2), X3) -> U93(X1, X2, X3) U93(mark(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, X2, mark(X3)) -> U93(X1, X2, X3) U93(active(X1), X2, X3) -> U93(X1, X2, X3) U93(X1, active(X2), X3) -> U93(X1, X2, X3) U93(X1, X2, active(X3)) -> U93(X1, X2, X3) U94(X1, mark(X2), X3) -> U94(X1, X2, X3) U94(mark(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, X2, mark(X3)) -> U94(X1, X2, X3) U94(active(X1), X2, X3) -> U94(X1, X2, X3) U94(X1, active(X2), X3) -> U94(X1, X2, X3) U94(X1, X2, active(X3)) -> U94(X1, X2, X3) U95(X1, mark(X2)) -> U95(X1, X2) U95(mark(X1), X2) -> U95(X1, X2) U95(active(X1), X2) -> U95(X1, X2) U95(X1, active(X2)) -> U95(X1, X2) U96(active(X)) -> U96(X) U96(mark(X)) -> U96(X) U11(X1, mark(X2)) -> U11(X1, X2) U11(mark(X1), X2) -> U11(X1, X2) U11(active(X1), X2) -> U11(X1, X2) U11(X1, active(X2)) -> U11(X1, X2) U21(X1, mark(X2)) -> U21(X1, X2) U21(mark(X1), X2) -> U21(X1, X2) U21(active(X1), X2) -> U21(X1, X2) U21(X1, active(X2)) -> U21(X1, X2) U31(X1, mark(X2)) -> U31(X1, X2) U31(mark(X1), X2) -> U31(X1, X2) U31(active(X1), X2) -> U31(X1, X2) U31(X1, active(X2)) -> U31(X1, X2) U41(X1, mark(X2), X3) -> U41(X1, X2, X3) U41(mark(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, X2, mark(X3)) -> U41(X1, X2, X3) U41(active(X1), X2, X3) -> U41(X1, X2, X3) U41(X1, active(X2), X3) -> U41(X1, X2, X3) U41(X1, X2, active(X3)) -> U41(X1, X2, X3) U51(X1, mark(X2)) -> U51(X1, X2) U51(mark(X1), X2) -> U51(X1, X2) U51(active(X1), X2) -> U51(X1, X2) U51(X1, active(X2)) -> U51(X1, X2) U61(X1, mark(X2)) -> U61(X1, X2) U61(mark(X1), X2) -> U61(X1, X2) U61(active(X1), X2) -> U61(X1, X2) U61(X1, active(X2)) -> U61(X1, X2) U71(active(X)) -> U71(X) U71(mark(X)) -> U71(X) U91(X1, mark(X2), X3) -> U91(X1, X2, X3) U91(mark(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, X2, mark(X3)) -> U91(X1, X2, X3) U91(active(X1), X2, X3) -> U91(X1, X2, X3) U91(X1, active(X2), X3) -> U91(X1, X2, X3) U91(X1, X2, active(X3)) -> U91(X1, X2, X3) U101(X1, mark(X2), X3) -> U101(X1, X2, X3) U101(mark(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, X2, mark(X3)) -> U101(X1, X2, X3) U101(active(X1), X2, X3) -> U101(X1, X2, X3) U101(X1, active(X2), X3) -> U101(X1, X2, X3) U101(X1, X2, active(X3)) -> U101(X1, X2, X3) U111(X1, mark(X2), X3) -> U111(X1, X2, X3) U111(mark(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, X2, mark(X3)) -> U111(X1, X2, X3) U111(active(X1), X2, X3) -> U111(X1, X2, X3) U111(X1, active(X2), X3) -> U111(X1, X2, X3) U111(X1, X2, active(X3)) -> U111(X1, X2, X3) U121(X1, mark(X2)) -> U121(X1, X2) U121(mark(X1), X2) -> U121(X1, X2) U121(active(X1), X2) -> U121(X1, X2) U121(X1, active(X2)) -> U121(X1, X2) U131(X1, mark(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(mark(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, mark(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, mark(X4)) -> U131(X1, X2, X3, X4) U131(active(X1), X2, X3, X4) -> U131(X1, X2, X3, X4) U131(X1, active(X2), X3, X4) -> U131(X1, X2, X3, X4) U131(X1, X2, active(X3), X4) -> U131(X1, X2, X3, X4) U131(X1, X2, X3, active(X4)) -> U131(X1, X2, X3, X4) The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (562) UsableRulesProof (EQUIVALENT) As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R. ---------------------------------------- (563) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U23(X)) -> MARK(X) R is empty. The set Q consists of the following terms: active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U23(mark(x0)) U23(active(x0)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (564) QReductionProof (EQUIVALENT) We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN]. active(zeros) active(U101(tt, x0, x1)) active(U102(tt, x0, x1)) active(U103(tt, x0, x1)) active(U104(tt, x0, x1)) active(U105(tt, x0)) active(U106(tt)) active(U11(tt, x0)) active(U111(tt, x0, x1)) active(U112(tt, x0, x1)) active(U113(tt, x0, x1)) active(U114(tt, x0)) active(U12(tt, x0)) active(U121(tt, x0)) active(U122(tt)) active(U13(tt)) active(U131(tt, x0, x1, x2)) active(U132(tt, x0, x1, x2)) active(U133(tt, x0, x1, x2)) active(U134(tt, x0, x1, x2)) active(U135(tt, x0, x1, x2)) active(U136(tt, x0, x1, x2)) active(U21(tt, x0)) active(U22(tt, x0)) active(U23(tt)) active(U31(tt, x0)) active(U32(tt, x0)) active(U33(tt)) active(U41(tt, x0, x1)) active(U42(tt, x0, x1)) active(U43(tt, x0, x1)) active(U44(tt, x0, x1)) active(U45(tt, x0)) active(U46(tt)) active(U51(tt, x0)) active(U52(tt)) active(U61(tt, x0)) active(U62(tt)) active(U71(tt)) active(U81(tt)) active(U91(tt, x0, x1)) active(U92(tt, x0, x1)) active(U93(tt, x0, x1)) active(U94(tt, x0, x1)) active(U95(tt, x0)) active(U96(tt)) active(isNat(0)) active(isNat(length(x0))) active(isNat(s(x0))) active(isNatIList(x0)) active(isNatIListKind(nil)) active(isNatIListKind(zeros)) active(isNatIListKind(cons(x0, x1))) active(isNatIListKind(take(x0, x1))) active(isNatKind(0)) active(isNatKind(length(x0))) active(isNatKind(s(x0))) active(isNatList(nil)) active(isNatList(cons(x0, x1))) active(isNatList(take(x0, x1))) active(length(nil)) active(length(cons(x0, x1))) active(take(0, x0)) active(take(s(x0), cons(x1, x2))) mark(zeros) mark(cons(x0, x1)) mark(0) mark(U101(x0, x1, x2)) mark(tt) mark(U102(x0, x1, x2)) mark(isNatKind(x0)) mark(U103(x0, x1, x2)) mark(isNatIListKind(x0)) mark(U104(x0, x1, x2)) mark(U105(x0, x1)) mark(isNat(x0)) mark(U106(x0)) mark(isNatIList(x0)) mark(U11(x0, x1)) mark(U12(x0, x1)) mark(U111(x0, x1, x2)) mark(U112(x0, x1, x2)) mark(U113(x0, x1, x2)) mark(U114(x0, x1)) mark(s(x0)) mark(length(x0)) mark(U13(x0)) mark(isNatList(x0)) mark(U121(x0, x1)) mark(U122(x0)) mark(nil) mark(U131(x0, x1, x2, x3)) mark(U132(x0, x1, x2, x3)) mark(U133(x0, x1, x2, x3)) mark(U134(x0, x1, x2, x3)) mark(U135(x0, x1, x2, x3)) mark(U136(x0, x1, x2, x3)) mark(take(x0, x1)) mark(U21(x0, x1)) mark(U22(x0, x1)) mark(U23(x0)) mark(U31(x0, x1)) mark(U32(x0, x1)) mark(U33(x0)) mark(U41(x0, x1, x2)) mark(U42(x0, x1, x2)) mark(U43(x0, x1, x2)) mark(U44(x0, x1, x2)) mark(U45(x0, x1)) mark(U46(x0)) mark(U51(x0, x1)) mark(U52(x0)) mark(U61(x0, x1)) mark(U62(x0)) mark(U71(x0)) mark(U81(x0)) mark(U91(x0, x1, x2)) mark(U92(x0, x1, x2)) mark(U93(x0, x1, x2)) mark(U94(x0, x1, x2)) mark(U95(x0, x1)) mark(U96(x0)) cons(mark(x0), x1) cons(x0, mark(x1)) cons(active(x0), x1) cons(x0, active(x1)) U101(mark(x0), x1, x2) U101(x0, mark(x1), x2) U101(x0, x1, mark(x2)) U101(active(x0), x1, x2) U101(x0, active(x1), x2) U101(x0, x1, active(x2)) U102(mark(x0), x1, x2) U102(x0, mark(x1), x2) U102(x0, x1, mark(x2)) U102(active(x0), x1, x2) U102(x0, active(x1), x2) U102(x0, x1, active(x2)) isNatKind(mark(x0)) isNatKind(active(x0)) U103(mark(x0), x1, x2) U103(x0, mark(x1), x2) U103(x0, x1, mark(x2)) U103(active(x0), x1, x2) U103(x0, active(x1), x2) U103(x0, x1, active(x2)) isNatIListKind(mark(x0)) isNatIListKind(active(x0)) U104(mark(x0), x1, x2) U104(x0, mark(x1), x2) U104(x0, x1, mark(x2)) U104(active(x0), x1, x2) U104(x0, active(x1), x2) U104(x0, x1, active(x2)) U105(mark(x0), x1) U105(x0, mark(x1)) U105(active(x0), x1) U105(x0, active(x1)) isNat(mark(x0)) isNat(active(x0)) U106(mark(x0)) U106(active(x0)) isNatIList(mark(x0)) isNatIList(active(x0)) U11(mark(x0), x1) U11(x0, mark(x1)) U11(active(x0), x1) U11(x0, active(x1)) U12(mark(x0), x1) U12(x0, mark(x1)) U12(active(x0), x1) U12(x0, active(x1)) U111(mark(x0), x1, x2) U111(x0, mark(x1), x2) U111(x0, x1, mark(x2)) U111(active(x0), x1, x2) U111(x0, active(x1), x2) U111(x0, x1, active(x2)) U112(mark(x0), x1, x2) U112(x0, mark(x1), x2) U112(x0, x1, mark(x2)) U112(active(x0), x1, x2) U112(x0, active(x1), x2) U112(x0, x1, active(x2)) U113(mark(x0), x1, x2) U113(x0, mark(x1), x2) U113(x0, x1, mark(x2)) U113(active(x0), x1, x2) U113(x0, active(x1), x2) U113(x0, x1, active(x2)) U114(mark(x0), x1) U114(x0, mark(x1)) U114(active(x0), x1) U114(x0, active(x1)) s(mark(x0)) s(active(x0)) length(mark(x0)) length(active(x0)) U13(mark(x0)) U13(active(x0)) isNatList(mark(x0)) isNatList(active(x0)) U121(mark(x0), x1) U121(x0, mark(x1)) U121(active(x0), x1) U121(x0, active(x1)) U122(mark(x0)) U122(active(x0)) U131(mark(x0), x1, x2, x3) U131(x0, mark(x1), x2, x3) U131(x0, x1, mark(x2), x3) U131(x0, x1, x2, mark(x3)) U131(active(x0), x1, x2, x3) U131(x0, active(x1), x2, x3) U131(x0, x1, active(x2), x3) U131(x0, x1, x2, active(x3)) U132(mark(x0), x1, x2, x3) U132(x0, mark(x1), x2, x3) U132(x0, x1, mark(x2), x3) U132(x0, x1, x2, mark(x3)) U132(active(x0), x1, x2, x3) U132(x0, active(x1), x2, x3) U132(x0, x1, active(x2), x3) U132(x0, x1, x2, active(x3)) U133(mark(x0), x1, x2, x3) U133(x0, mark(x1), x2, x3) U133(x0, x1, mark(x2), x3) U133(x0, x1, x2, mark(x3)) U133(active(x0), x1, x2, x3) U133(x0, active(x1), x2, x3) U133(x0, x1, active(x2), x3) U133(x0, x1, x2, active(x3)) U134(mark(x0), x1, x2, x3) U134(x0, mark(x1), x2, x3) U134(x0, x1, mark(x2), x3) U134(x0, x1, x2, mark(x3)) U134(active(x0), x1, x2, x3) U134(x0, active(x1), x2, x3) U134(x0, x1, active(x2), x3) U134(x0, x1, x2, active(x3)) U135(mark(x0), x1, x2, x3) U135(x0, mark(x1), x2, x3) U135(x0, x1, mark(x2), x3) U135(x0, x1, x2, mark(x3)) U135(active(x0), x1, x2, x3) U135(x0, active(x1), x2, x3) U135(x0, x1, active(x2), x3) U135(x0, x1, x2, active(x3)) U136(mark(x0), x1, x2, x3) U136(x0, mark(x1), x2, x3) U136(x0, x1, mark(x2), x3) U136(x0, x1, x2, mark(x3)) U136(active(x0), x1, x2, x3) U136(x0, active(x1), x2, x3) U136(x0, x1, active(x2), x3) U136(x0, x1, x2, active(x3)) take(mark(x0), x1) take(x0, mark(x1)) take(active(x0), x1) take(x0, active(x1)) U21(mark(x0), x1) U21(x0, mark(x1)) U21(active(x0), x1) U21(x0, active(x1)) U22(mark(x0), x1) U22(x0, mark(x1)) U22(active(x0), x1) U22(x0, active(x1)) U31(mark(x0), x1) U31(x0, mark(x1)) U31(active(x0), x1) U31(x0, active(x1)) U32(mark(x0), x1) U32(x0, mark(x1)) U32(active(x0), x1) U32(x0, active(x1)) U33(mark(x0)) U33(active(x0)) U41(mark(x0), x1, x2) U41(x0, mark(x1), x2) U41(x0, x1, mark(x2)) U41(active(x0), x1, x2) U41(x0, active(x1), x2) U41(x0, x1, active(x2)) U42(mark(x0), x1, x2) U42(x0, mark(x1), x2) U42(x0, x1, mark(x2)) U42(active(x0), x1, x2) U42(x0, active(x1), x2) U42(x0, x1, active(x2)) U43(mark(x0), x1, x2) U43(x0, mark(x1), x2) U43(x0, x1, mark(x2)) U43(active(x0), x1, x2) U43(x0, active(x1), x2) U43(x0, x1, active(x2)) U44(mark(x0), x1, x2) U44(x0, mark(x1), x2) U44(x0, x1, mark(x2)) U44(active(x0), x1, x2) U44(x0, active(x1), x2) U44(x0, x1, active(x2)) U45(mark(x0), x1) U45(x0, mark(x1)) U45(active(x0), x1) U45(x0, active(x1)) U46(mark(x0)) U46(active(x0)) U51(mark(x0), x1) U51(x0, mark(x1)) U51(active(x0), x1) U51(x0, active(x1)) U52(mark(x0)) U52(active(x0)) U61(mark(x0), x1) U61(x0, mark(x1)) U61(active(x0), x1) U61(x0, active(x1)) U62(mark(x0)) U62(active(x0)) U71(mark(x0)) U71(active(x0)) U81(mark(x0)) U81(active(x0)) U91(mark(x0), x1, x2) U91(x0, mark(x1), x2) U91(x0, x1, mark(x2)) U91(active(x0), x1, x2) U91(x0, active(x1), x2) U91(x0, x1, active(x2)) U92(mark(x0), x1, x2) U92(x0, mark(x1), x2) U92(x0, x1, mark(x2)) U92(active(x0), x1, x2) U92(x0, active(x1), x2) U92(x0, x1, active(x2)) U93(mark(x0), x1, x2) U93(x0, mark(x1), x2) U93(x0, x1, mark(x2)) U93(active(x0), x1, x2) U93(x0, active(x1), x2) U93(x0, x1, active(x2)) U94(mark(x0), x1, x2) U94(x0, mark(x1), x2) U94(x0, x1, mark(x2)) U94(active(x0), x1, x2) U94(x0, active(x1), x2) U94(x0, x1, active(x2)) U95(mark(x0), x1) U95(x0, mark(x1)) U95(active(x0), x1) U95(x0, active(x1)) U96(mark(x0)) U96(active(x0)) ---------------------------------------- (565) Obligation: Q DP problem: The TRS P consists of the following rules: MARK(U23(X)) -> MARK(X) R is empty. The set Q consists of the following terms: U23(mark(x0)) U23(active(x0)) We have to consider all minimal (P,Q,R)-chains. ---------------------------------------- (566) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *MARK(U23(X)) -> MARK(X) The graph contains the following edges 1 > 1 ---------------------------------------- (567) YES